[INFO] cloning repository https://github.com/AdriRRP/demonic-tutor
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AdriRRP/demonic-tutor" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAdriRRP%2Fdemonic-tutor", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAdriRRP%2Fdemonic-tutor'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1376baeea674c25cd293490a13062f8d419c6c75
[INFO] testing AdriRRP/demonic-tutor against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAdriRRP%2Fdemonic-tutor" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/AdriRRP/demonic-tutor
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/AdriRRP/demonic-tutor
[INFO] tweaked toml for git repo https://github.com/AdriRRP/demonic-tutor written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AdriRRP/demonic-tutor on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AdriRRP/demonic-tutor already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded smart-default v0.7.1
[INFO] [stderr]   Downloaded sealed v0.6.0
[INFO] [stderr]   Downloaded rand_core v0.10.0
[INFO] [stderr]   Downloaded cucumber v0.22.1
[INFO] [stderr]   Downloaded synthez-codegen v0.4.0
[INFO] [stderr]   Downloaded inventory v0.3.22
[INFO] [stderr]   Downloaded peg-runtime v0.6.3
[INFO] [stderr]   Downloaded peg v0.6.3
[INFO] [stderr]   Downloaded peg-macros v0.6.3
[INFO] [stderr]   Downloaded nom_locate v5.0.0
[INFO] [stderr]   Downloaded typed-builder v0.23.2
[INFO] [stderr]   Downloaded typed-builder-macro v0.23.2
[INFO] [stderr]   Downloaded synthez v0.4.0
[INFO] [stderr]   Downloaded gherkin v0.15.0
[INFO] [stderr]   Downloaded cucumber-expressions v0.5.0
[INFO] [stderr]   Downloaded cucumber-codegen v0.22.1
[INFO] [stderr]   Downloaded synthez-core v0.4.0
[INFO] [stderr]   Downloaded tokio v1.51.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b1cf79cbc1fc42ee8a32ad1f27c553dff2f18a40384e2b698d8c756914267ba8
[INFO] running `Command { std: "docker" "start" "-a" "b1cf79cbc1fc42ee8a32ad1f27c553dff2f18a40384e2b698d8c756914267ba8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b1cf79cbc1fc42ee8a32ad1f27c553dff2f18a40384e2b698d8c756914267ba8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b1cf79cbc1fc42ee8a32ad1f27c553dff2f18a40384e2b698d8c756914267ba8", kill_on_drop: false }`
[INFO] [stdout] b1cf79cbc1fc42ee8a32ad1f27c553dff2f18a40384e2b698d8c756914267ba8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e8a8a2726d111b11724e426cacec19728c06554ee2237515cbb7cbb04f783b20
[INFO] running `Command { std: "docker" "start" "-a" "e8a8a2726d111b11724e426cacec19728c06554ee2237515cbb7cbb04f783b20", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling demonictutor v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.65s
[INFO] running `Command { std: "docker" "inspect" "e8a8a2726d111b11724e426cacec19728c06554ee2237515cbb7cbb04f783b20", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e8a8a2726d111b11724e426cacec19728c06554ee2237515cbb7cbb04f783b20", kill_on_drop: false }`
[INFO] [stdout] e8a8a2726d111b11724e426cacec19728c06554ee2237515cbb7cbb04f783b20
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 23f7292d2db5fbf87eab3ef3dd93c7fbaeaad27f704d21897de6ff5d615c75b8
[INFO] running `Command { std: "docker" "start" "-a" "23f7292d2db5fbf87eab3ef3dd93c7fbaeaad27f704d21897de6ff5d615c75b8", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling peg-runtime v0.6.3
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling humantime v2.3.0
[INFO] [stderr]    Compiling inventory v0.3.22
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling peg-macros v0.6.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling demonictutor v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling peg v0.6.3
[INFO] [stderr]    Compiling terminal_size v0.4.3
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling sealed v0.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling typed-builder-macro v0.23.2
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling synthez-core v0.4.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling smart-default v0.7.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio v1.51.1
[INFO] [stderr]    Compiling synthez-codegen v0.4.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling synthez v0.4.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling typed-builder v0.23.2
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling nom_locate v5.0.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling globwalk v0.9.1
[INFO] [stderr]    Compiling gherkin v0.15.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling cucumber-expressions v0.5.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling cucumber-codegen v0.22.1
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling cucumber v0.22.1
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 57.77s
[INFO] running `Command { std: "docker" "inspect" "23f7292d2db5fbf87eab3ef3dd93c7fbaeaad27f704d21897de6ff5d615c75b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23f7292d2db5fbf87eab3ef3dd93c7fbaeaad27f704d21897de6ff5d615c75b8", kill_on_drop: false }`
[INFO] [stdout] 23f7292d2db5fbf87eab3ef3dd93c7fbaeaad27f704d21897de6ff5d615c75b8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3f85890e9983c5b12c3269a4e8a114a2c341a6ce93a66d7f1802c809991e3757
[INFO] running `Command { std: "docker" "start" "-a" "3f85890e9983c5b12c3269a4e8a114a2c341a6ce93a66d7f1802c809991e3757", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/demonictutor-7baa2c4d37675ba3)
[INFO] [stdout] 
[INFO] [stdout] running 52 tests
[INFO] [stdout] test application::game_service::turn_flow::tests::discard_for_cleanup_surfaces_zone_move_after_discard_event ... ok
[INFO] [stdout] test application::game_service::lifecycle::tests::deal_opening_hands_restores_card_locations_when_persistence_fails ... ok
[INFO] [stdout] test application::game_service::resource_actions::tests::adjust_player_life_effect_surfaces_zone_moves_for_creatures_that_die ... ok
[INFO] [stdout] test application::game_service::lifecycle::tests::mulligan_restores_card_locations_when_persistence_fails ... ok
[INFO] [stdout] test application::public_game::surface::tests::game_view_keeps_stack_object_visible_when_controller_index_is_stale ... ok
[INFO] [stdout] test application::public_game::surface::tests::game_view_surfaces_missing_active_player_without_inventing_public_ids ... ok
[INFO] [stdout] test application::public_game::surface::tests::pending_decision_surface_does_not_panic_when_controller_index_is_stale ... ok
[INFO] [stdout] test application::public_game::surface::tests::phase_surface_stays_explicit_when_active_player_index_is_stale ... ok
[INFO] [stdout] test application::public_game::surface::tests::priority_surface_stays_explicit_when_priority_holder_is_missing ... ok
[INFO] [stdout] test application::public_game::surface::tests::pending_decision_surface_stays_explicit_when_request_payload_cannot_be_built ... ok
[INFO] [stdout] test application::public_game::surface::tests::spell_choice_request_stays_explicit_when_secondary_target_candidates_are_missing ... ok
[INFO] [stdout] test application::public_game::surface::tests::game_view_marks_stack_targets_unavailable_when_target_refs_are_stale ... ok
[INFO] [stdout] test domain::play::cards::limited_set_catalog::tests::classifies_supported_controller_anthem_enchantment ... ok
[INFO] [stdout] test domain::play::cards::limited_set_catalog::tests::classifies_supported_creature_anthem_profile ... ok
[INFO] [stdout] test domain::play::cards::limited_set_catalog::tests::classifies_supported_spell_profile_using_existing_resolution_shape ... ok
[INFO] [stdout] test domain::play::cards::limited_set_catalog::tests::classifies_supported_stat_boost_aura_enchantment ... ok
[INFO] [stdout] test domain::play::cards::runtime::tests::creature_payload_round_trips_stats_and_keywords_without_static_mana_metadata ... ok
[INFO] [stdout] test domain::play::cards::runtime::tests::plus_one_plus_one_counters_modify_current_creature_stats ... ok
[INFO] [stdout] test domain::play::cards::runtime::tests::permanent_payload_round_trips_relevant_battlefield_traits_without_static_mana_metadata ... ok
[INFO] [stdout] test domain::play::game::lifecycle::tests::bottom_opening_hand_cards_moves_selected_cards_to_library_bottom ... ok
[INFO] [stdout] test domain::play::game::rules::stack_priority::resolution::effects::tests::bounce_returns_foreign_owned_permanent_to_owners_hand ... ok
[INFO] [stdout] test domain::play::game::lifecycle::tests::deal_opening_hands_rebuilds_card_locations_for_drawn_cards ... ok
[INFO] [stdout] test domain::play::game::lifecycle::tests::mulligan_can_be_taken_multiple_times_during_setup ... ok
[INFO] [stdout] test domain::play::game::rules::state_based_actions::tests::simultaneous_zero_life_ends_the_game_as_a_draw ... ok
[INFO] [stdout] test domain::play::game::rules::state_based_actions::tests::lethal_damage_moves_foreign_owned_creature_to_owners_graveyard ... ok
[INFO] [stdout] test domain::play::game::rules::state_based_actions::tests::stale_external_location_index_does_not_keep_orphaned_aura_on_battlefield ... ok
[INFO] [stdout] test domain::play::game::lifecycle::tests::mulligan_rebuilds_card_locations_for_new_hand ... ok
[INFO] [stdout] test domain::play::game::rules::zones::tests::exile_from_battlefield_reports_token_departure_to_created_zone ... ok
[INFO] [stdout] test domain::play::game::rules::state_based_actions::tests::token_that_dies_reports_departure_to_created_zone ... ok
[INFO] [stdout] test domain::play::cards::runtime::tests::effect_payload_round_trips_resolution_rules_without_static_mana_metadata ... ok
[INFO] [stdout] test domain::play::game::model::player::tests::move_handle_between_zones_rolls_back_visible_zone_when_arena_update_fails ... ok
[INFO] [stdout] test domain::play::game::model::player::tests::prepare_hand_spell_cast_rolls_back_arena_state_when_hand_and_arena_are_desynchronized ... ok
[INFO] [stdout] test domain::play::ids::tests::different_public_texts_keep_card_instance_ids_distinct ... ok
[INFO] [stdout] test domain::play::game::rules::combat::damage::participants::tests::collect_attackers_keeps_ordered_blocker_handle_references ... ok
[INFO] [stdout] test domain::play::ids::tests::short_ids_round_trip_through_inline_storage ... ok
[INFO] [stdout] test domain::play::zones::tests::hand_removal_preserves_visible_order ... ok
[INFO] [stdout] test domain::play::ids::tests::stack_object_ids_share_numeric_core_for_the_same_public_value ... ok
[INFO] [stdout] test domain::play::zones::tests::hand_reuses_removed_slots_without_changing_visible_order ... ok
[INFO] [stdout] test domain::play::ids::tests::stack_object_ids_keep_stable_public_strings ... ok
[INFO] [stdout] test domain::play::zones::tests::hand_visible_indexing_stays_stable_after_repeated_removals_and_insertions ... ok
[INFO] [stdout] test domain::play::game::rules::stack_priority::resolution::effects::tests::bounce_reports_token_departure_to_created_zone ... ok
[INFO] [stdout] test domain::play::game::rules::combat::damage::participants::tests::collect_blockers_keeps_internal_attacker_handle_reference ... ok
[INFO] [stdout] test domain::play::ids::tests::long_ids_fall_back_without_changing_public_text ... ok
[INFO] [stdout] test domain::play::game::rules::zones::tests::exile_from_controller_battlefield_moves_foreign_owned_card_to_owner_exile ... ok
[INFO] [stdout] test domain::play::cards::limited_set_catalog::tests::rejects_unsupported_cross_family_card_shape ... ok
[INFO] [stdout] test domain::play::ids::tests::same_public_text_keeps_card_instance_ids_equal ... ok
[INFO] [stdout] test application::public_game::surface::tests::spell_choice_request_surfaces_opponent_lookup_as_invariant_violation ... ok
[INFO] [stdout] test domain::play::cards::limited_set_catalog::tests::classifies_supported_attack_trigger_creature_with_keywords ... ok
[INFO] [stdout] test domain::play::cards::rules::spell_profiles::tests::surveil_rejects_unsupported_amounts - should panic ... ok
[INFO] [stdout] test domain::play::cards::rules::spell_profiles::tests::scry_rejects_unsupported_amounts - should panic ... ok
[INFO] [stdout] test infrastructure::projections::game_log::tests::handle_panics_when_projection_lock_is_poisoned ... ok
[INFO] [stdout] test infrastructure::projections::game_log::tests::logs_surface_lock_poisoning_explicitly ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/bdd.rs (/opt/rustwide/target/debug/deps/bdd-829263b976cc9ab3)
[INFO] [stdout] Feature: Stack foundation exists in the aggregate before stack behavior is enabled
[INFO] [stdout]   Scenario: Starting a game initializes an empty stack and no open priority window
[INFO] [stdout]    ✔  Given a new two-player game has started
[INFO] [stdout]    ✔  Then the stack is empty
[INFO] [stdout]    ✔  And no priority window is open
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 3 steps (3 passed)
[INFO] [stdout] Feature: Responding with an instant spell while holding priority
[INFO] [stdout]   Scenario: Bob responds to Alice's spell with an instant
[INFO] [stdout]    ✔  Given Alice has cast a creature spell and still holds priority with Bob's instant in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob casts the instant response spell
[INFO] [stdout]    ✔  Then Bob's instant is on top of the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout]   Scenario: Bob cannot respond with a creature spell yet
[INFO] [stdout]    ✔  Given Alice has cast an instant spell and still holds priority with Bob's creature card in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob tries to cast the creature response spell
[INFO] [stdout]    ✔  Then the action is rejected because the spell timing is not legal in the current window
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 15 steps (15 passed)
[INFO] [stdout] Feature: Respond with a paid instant spell
[INFO] [stdout]   Scenario: Bob taps a land and pays for an instant response in the same window
[INFO] [stdout]    ✔  Given Alice has cast a creature spell and Bob can pay for an instant response with a land on the battlefield
[INFO] [stdout]    ✔  When Bob taps his land for mana
[INFO] [stdout]    ✔  And Bob casts the instant response spell
[INFO] [stdout]    ✔  Then Bob's instant is on top of the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 11 steps (11 passed)
[INFO] [stdout] Feature: Tapping a land for mana does not use the stack
[INFO] [stdout]   Scenario: Bob taps a land for mana while holding priority on Alice's spell
[INFO] [stdout]    ✔  Given Alice has cast a creature spell and Bob can pay for an instant response with a land on the battlefield
[INFO] [stdout]    ✔  When Bob taps his land for mana
[INFO] [stdout]    ✔  Then Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Respond with an instant during the upkeep priority window
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority in Upkeep
[INFO] [stdout]    ✔  Given Bob has priority in Upkeep with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with an instant during the draw priority window
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority in Draw
[INFO] [stdout]    ✔  Given Bob has priority in Draw with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with an instant during the first main priority window
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority in FirstMain
[INFO] [stdout]    ✔  Given Bob has priority in FirstMain with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with an instant during the second main priority window
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority in SecondMain
[INFO] [stdout]    ✔  Given Bob has priority in SecondMain with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with an instant during the end-step priority window
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority in EndStep
[INFO] [stdout]    ✔  Given Bob has priority in EndStep with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with an instant during the beginning-of-combat priority window
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority at the beginning of Combat
[INFO] [stdout]    ✔  Given Bob has priority at the beginning of Combat with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with an instant after attackers are declared
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority after attackers
[INFO] [stdout]    ✔  Given Bob has priority after attackers are declared with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with a second instant in the declare-blockers window
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority in DeclareBlockers
[INFO] [stdout]    ✔  Given Bob has priority in DeclareBlockers with two instant cards in hand
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  And Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Respond with an instant after blockers are declared
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority after blockers
[INFO] [stdout]    ✔  Given Bob has priority after blockers are declared with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with a second instant in the combat-damage window
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority in CombatDamage
[INFO] [stdout]    ✔  Given Bob has priority in CombatDamage with two instant cards in hand
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  And Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Respond with a second instant in the end-of-combat window
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority in EndOfCombat
[INFO] [stdout]    ✔  Given Bob has priority in EndOfCombat with two instant cards in hand
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  And Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Respond with an instant after combat damage resolves
[INFO] [stdout]   Scenario: Bob casts and resolves an instant after Alice passes priority after combat damage
[INFO] [stdout]    ✔  Given Bob has priority after combat damage with an instant card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Respond with a second instant while holding priority on an existing stack
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority after responding to Alice's spell
[INFO] [stdout]    ✔  Given Alice has cast a creature spell and Bob has priority with two instant cards in hand
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  And Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains Alice's original spell below two spells controlled by Bob
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack above Alice's original spell
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Respond with a second instant during the upkeep priority window
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority in Upkeep
[INFO] [stdout]    ✔  Given Bob has priority in Upkeep with two instant cards in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Respond with a second instant during the draw priority window
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority in Draw
[INFO] [stdout]    ✔  Given Bob has priority in Draw with two instant cards in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Respond with a second instant at the beginning of combat
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority at the beginning of Combat
[INFO] [stdout]    ✔  Given Bob has priority at the beginning of Combat with two instant cards in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Respond with a second instant during the end-step priority window
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority in EndStep
[INFO] [stdout]    ✔  Given Bob has priority in EndStep with two instant cards in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Respond with a second instant during the first main priority window
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority in FirstMain
[INFO] [stdout]    ✔  Given Bob has priority in FirstMain with two instant cards in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Respond with a second instant during the second main priority window
[INFO] [stdout]   Scenario: Bob casts a second instant before passing priority in SecondMain
[INFO] [stdout]    ✔  Given Bob has priority in SecondMain with two instant cards in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob casts the first instant response spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob casts the second instant response spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Bob
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's original response remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant during the upkeep priority window
[INFO] [stdout]   Scenario: Alice casts and resolves an instant during Upkeep
[INFO] [stdout]    ✔  Given Alice is the active player in Upkeep with an instant card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a second instant while retaining priority in upkeep
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority in Upkeep
[INFO] [stdout]    ✔  Given Alice is the active player in Upkeep with two instant cards in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant during the draw priority window
[INFO] [stdout]   Scenario: Alice casts and resolves an instant during Draw
[INFO] [stdout]    ✔  Given Alice is the active player in Draw with an instant card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a second instant while retaining priority in draw
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority in Draw
[INFO] [stdout]    ✔  Given Alice is the active player in Draw with two instant cards in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant during the first main priority window
[INFO] [stdout]   Scenario: Alice casts and resolves an instant during FirstMain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an instant card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a green instant with matching colored mana
[INFO] [stdout]   Scenario: Alice casts and resolves a green instant using green mana from a Forest
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a green instant card in hand and priority
[INFO] [stdout]    ✔  And Alice has enough mana to pay its cost
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a mixed green instant with matching mana
[INFO] [stdout]   Scenario: Alice casts and resolves a 1G instant using a Forest and a Mountain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a mixed green instant card in hand and priority
[INFO] [stdout]    ✔  And Alice has enough mana to pay its cost
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a double green instant with matching mana
[INFO] [stdout]   Scenario: Alice casts and resolves a GG instant using two Forests
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a double green instant card in hand and priority
[INFO] [stdout]    ✔  And Alice has enough mana to pay its cost
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Reject a mixed green instant when the required green symbol is missing
[INFO] [stdout]   Scenario: Alice cannot cast a 1G instant using only red and white mana
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a mixed green instant card in hand and only red and white mana available
[INFO] [stdout]    ✔  And Alice has enough mana to pay its cost
[INFO] [stdout]    ✔  When Alice tries to cast the green instant spell
[INFO] [stdout]    ✔  Then the action is rejected because the available mana does not satisfy the colored cost
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Targeted instant spells
[INFO] [stdout]   Scenario: Alice casts a targeted instant spell at Bob
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a targeted instant spell in hand
[INFO] [stdout]    ✔  And Bob is a valid target player
[INFO] [stdout]    ✔  When Alice casts the targeted instant spell targeting Bob
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And the spell is on the stack targeting Bob
[INFO] [stdout]   Scenario: A targeted instant spell deals damage to Bob when it resolves
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a targeted instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the targeted instant spell targeting Bob
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Bob loses 2 life
[INFO] [stdout]   Scenario: Targeted player damage can end the game
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a lethal targeted instant spell in hand
[INFO] [stdout]    ✔  And Bob is at 2 life
[INFO] [stdout]    ✔  When Alice casts the targeted instant spell targeting Bob
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game ends with Bob losing
[INFO] [stdout]   Scenario: A targeted instant spell cannot be cast without a target
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a targeted instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the targeted instant spell without a target
[INFO] [stdout]    ✔  Then casting fails because the spell target is missing
[INFO] [stdout]   Scenario: A targeted instant spell cannot target a missing player
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a targeted instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the targeted instant spell targeting a missing player
[INFO] [stdout]    ✔  Then casting fails because the target player does not exist
[INFO] [stdout]   Scenario: A targeted instant spell can destroy Bob's creature
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a targeted instant spell and Bob's creature on the battlefield
[INFO] [stdout]    ✔  When Alice casts the targeted instant spell targeting Bob's creature
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Bob's creature dies
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 6 scenarios (6 passed)
[INFO] [stdout] 27 steps (27 passed)
[INFO] [stdout] Feature: Cast a sorcery during an empty main-phase priority window
[INFO] [stdout]   Scenario: Alice casts and resolves a sorcery in FirstMain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a sorcery card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the sorcery spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout]   Scenario: Alice casts and resolves a sorcery in SecondMain
[INFO] [stdout]    ✔  Given Alice is the active player in SecondMain with a sorcery card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the sorcery spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 20 steps (20 passed)
[INFO] [stdout] Feature: Cast a creature during the second main priority window
[INFO] [stdout]   Scenario: Alice casts and resolves a creature in SecondMain
[INFO] [stdout]    ✔  Given Alice is the active player in SecondMain with a creature card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the creature spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 8 steps (8 passed)
[INFO] [stdout] Feature: Cast an artifact during an empty main-phase priority window
[INFO] [stdout]   Scenario: Alice casts and resolves an artifact in FirstMain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an artifact card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout]   Scenario: Alice casts and resolves an artifact in SecondMain
[INFO] [stdout]    ✔  Given Alice is the active player in SecondMain with an artifact card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 20 steps (20 passed)
[INFO] [stdout] Feature: Cast an enchantment in an empty main-phase priority window
[INFO] [stdout]   Scenario: Alice casts and resolves an enchantment in FirstMain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]   Scenario: Alice casts and resolves an enchantment in SecondMain
[INFO] [stdout]    ✔  Given Alice is the active player in SecondMain with an enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 16 steps (16 passed)
[INFO] [stdout] Feature: Cast a planeswalker during an empty main-phase priority window
[INFO] [stdout]   Scenario: Alice casts and resolves a planeswalker in FirstMain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a planeswalker card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the planeswalker spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]   Scenario: Alice casts and resolves a planeswalker in SecondMain
[INFO] [stdout]    ✔  Given Alice is the active player in SecondMain with a planeswalker card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the planeswalker spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 16 steps (16 passed)
[INFO] [stdout] Feature: Cast a second instant while retaining priority in first main
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority in FirstMain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with two instant cards in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant during the second main priority window
[INFO] [stdout]   Scenario: Alice casts and resolves an instant during SecondMain
[INFO] [stdout]    ✔  Given Alice is the active player in SecondMain with an instant card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Sorceries cannot be cast as responses on an open stack
[INFO] [stdout]   Scenario: Bob cannot respond to Alice's instant with a sorcery
[INFO] [stdout]    ✔  Given Alice has cast an instant spell and still holds priority with Bob's sorcery card in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob tries to cast the sorcery response spell
[INFO] [stdout]    ✔  Then the action is rejected because the spell timing is not legal in the current window
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Reject a planeswalker as a response on the stack
[INFO] [stdout]   Scenario: Bob cannot respond with a planeswalker spell yet
[INFO] [stdout]    ✔  Given Alice has cast an instant spell and still holds priority with Bob's planeswalker card in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob tries to cast the planeswalker response spell
[INFO] [stdout]    ✔  Then the action is rejected because the spell timing is not legal in the current window
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Reject a green instant when only red mana is available
[INFO] [stdout]   Scenario: Alice cannot cast a green instant using only red mana
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a green instant card in hand and only a mountain available
[INFO] [stdout]    ✔  And Alice has only red mana available to pay its cost
[INFO] [stdout]    ✔  When Alice tries to cast the green instant spell
[INFO] [stdout]    ✔  Then the action is rejected because the available mana does not satisfy the colored cost
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Sorcery-speed spells still require active-player priority
[INFO] [stdout]   Scenario: Bob cannot cast an artifact spell in Alice's empty FirstMain window
[INFO] [stdout]    ✔  Given Bob has priority in FirstMain with an artifact card in hand
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Bob tries to cast the artifact spell
[INFO] [stdout]    ✔  Then the action is rejected because the spell timing is not legal in the current window
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Cast a second instant while retaining priority in second main
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority in SecondMain
[INFO] [stdout]    ✔  Given Alice is the active player in SecondMain with two instant cards in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant during the end-step priority window
[INFO] [stdout]   Scenario: Alice casts and resolves an instant during EndStep
[INFO] [stdout]    ✔  Given Alice is the active player in EndStep with an instant card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a second instant while retaining priority in end step
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority in EndStep
[INFO] [stdout]    ✔  Given Alice is the active player in EndStep with two instant cards in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant during the beginning-of-combat priority window
[INFO] [stdout]   Scenario: Alice casts and resolves an instant at the beginning of Combat
[INFO] [stdout]    ✔  Given Alice is at the beginning of Combat with an instant card in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a second instant while retaining priority at the beginning of combat
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority at the beginning of Combat
[INFO] [stdout]    ✔  Given Alice is at the beginning of Combat with two instant cards in hand and priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant after attackers are declared
[INFO] [stdout]   Scenario: Alice casts and resolves an instant after declaring attackers
[INFO] [stdout]    ✔  Given Alice has declared attackers and still has an instant card in hand with priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a second instant after attackers are declared
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority after attackers
[INFO] [stdout]    ✔  Given Alice has declared attackers and still has two instant cards in hand with priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant after blockers are declared
[INFO] [stdout]   Scenario: Alice casts and resolves an instant after blockers are declared
[INFO] [stdout]    ✔  Given Bob has declared blockers and Alice still has an instant card in hand with priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a second instant after blockers are declared
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority after blockers
[INFO] [stdout]    ✔  Given Bob has declared blockers and Alice still has two instant cards in hand with priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Cast an instant after combat damage resolves
[INFO] [stdout]   Scenario: Alice casts and resolves an instant after combat damage
[INFO] [stdout]    ✔  Given combat damage has resolved and Alice still has an instant card in hand with priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome ResolvedToGraveyard
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a second instant after combat damage resolves
[INFO] [stdout]   Scenario: Alice casts a second instant before passing priority after combat damage
[INFO] [stdout]    ✔  Given combat damage has resolved and Alice still has two instant cards in hand with priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice casts the instant spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice casts the second instant spell
[INFO] [stdout]    ✔  Then the stack contains 2 spells controlled by Alice
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Respond with a flash artifact spell
[INFO] [stdout]   Scenario: Bob responds to Alice's spell with a flash artifact
[INFO] [stdout]    ✔  Given Alice has cast a creature spell and still holds priority with Bob's flash artifact in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob casts the flash artifact response spell
[INFO] [stdout]    ?  Then the spell is on top of the stack under Bob's control
[INFO] [stdout]       Step skipped: features/stack/respond_with_flash_artifact_spell.feature:10:5
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 skipped)
[INFO] [stdout] 4 steps (3 passed, 1 skipped)
[INFO] [stdout] Feature: Respond with a flash enchantment spell
[INFO] [stdout]   Scenario: Bob responds to Alice's spell with a flash enchantment
[INFO] [stdout]    ✔  Given Alice has cast a creature spell and still holds priority with Bob's flash enchantment in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob casts the flash enchantment response spell
[INFO] [stdout]    ?  Then the spell is on top of the stack under Bob's control
[INFO] [stdout]       Step skipped: features/stack/respond_with_flash_enchantment_spell.feature:10:5
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 skipped)
[INFO] [stdout] 4 steps (3 passed, 1 skipped)
[INFO] [stdout] Feature: Respond with a flash planeswalker spell
[INFO] [stdout]   Scenario: Bob responds to Alice's spell with a flash planeswalker
[INFO] [stdout]    ✔  Given Alice has cast a creature spell and still holds priority with Bob's flash planeswalker in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob casts the planeswalker response spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  And Bob has priority
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And Alice's original spell remains on the stack
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 11 steps (11 passed)
[INFO] [stdout] Feature: Cast a flash artifact at beginning of combat
[INFO] [stdout]   Scenario: Alice casts and resolves a flash artifact at BeginningOfCombat
[INFO] [stdout]    ✔  Given Alice is the active player in BeginningOfCombat with a flash artifact card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash artifact after blockers are declared
[INFO] [stdout]   Scenario: Alice casts and resolves a flash artifact after blockers
[INFO] [stdout]    ✔  Given Alice is the active player after declaring blockers with a flash artifact card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash artifact after combat damage resolves
[INFO] [stdout]   Scenario: Alice casts and resolves a flash artifact in EndOfCombat
[INFO] [stdout]    ✔  Given Alice is the active player after combat damage with a flash artifact card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash enchantment at beginning of combat
[INFO] [stdout]   Scenario: Alice casts and resolves a flash enchantment at BeginningOfCombat
[INFO] [stdout]    ✔  Given Alice is the active player in BeginningOfCombat with a flash enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash enchantment after blockers are declared
[INFO] [stdout]   Scenario: Alice casts and resolves a flash enchantment after blockers
[INFO] [stdout]    ✔  Given Alice is the active player after declaring blockers with a flash enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash enchantment after combat damage resolves
[INFO] [stdout]   Scenario: Alice casts and resolves a flash enchantment in EndOfCombat
[INFO] [stdout]    ✔  Given Alice is the active player after combat damage with a flash enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash planeswalker at beginning of combat
[INFO] [stdout]   Scenario: Alice casts and resolves a flash planeswalker at BeginningOfCombat
[INFO] [stdout]    ✔  Given Alice is the active player in BeginningOfCombat with a flash planeswalker card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the planeswalker spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash planeswalker after blockers are declared
[INFO] [stdout]   Scenario: Alice casts and resolves a flash planeswalker after blockers
[INFO] [stdout]    ✔  Given Alice is the active player after declaring blockers with a flash planeswalker card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the planeswalker spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash planeswalker after combat damage resolves
[INFO] [stdout]   Scenario: Alice casts and resolves a flash planeswalker after combat damage
[INFO] [stdout]    ✔  Given Alice is the active player after combat damage with a flash planeswalker card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the planeswalker spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And Alice has priority again
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast a flash creature after blockers are declared
[INFO] [stdout]   Scenario: Alice casts and resolves a flash creature after blockers
[INFO] [stdout]    ✔  Given Bob has declared blockers and Alice still has a flash creature card in hand with priority
[INFO] [stdout]    ✔  When Alice casts the flash creature spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout]    ✔  And the card has summoning sickness
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a flash creature after combat damage resolves
[INFO] [stdout]   Scenario: Alice casts and resolves a flash creature in EndOfCombat
[INFO] [stdout]    ✔  Given combat damage has resolved and Alice still has a flash creature card in hand with priority
[INFO] [stdout]    ✔  When Alice casts the flash creature spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout]    ✔  And the card has summoning sickness
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority artifact in upkeep
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority artifact in Upkeep
[INFO] [stdout]    ✔  Given Alice is the active player in Upkeep with an own-turn-priority artifact card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority artifact at beginning of combat
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority artifact at BeginningOfCombat
[INFO] [stdout]    ✔  Given Alice is the active player in BeginningOfCombat with an own-turn-priority artifact card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority artifact after attackers
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority artifact after attackers are declared
[INFO] [stdout]    ✔  Given Alice is the active player after declaring attackers with an own-turn-priority artifact card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority artifact after blockers
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority artifact after blockers are declared
[INFO] [stdout]    ✔  Given Alice is the active player after declaring blockers with an own-turn-priority artifact card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority artifact after combat damage
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority artifact after combat damage
[INFO] [stdout]    ✔  Given Alice is the active player after combat damage with an own-turn-priority artifact card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the artifact spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority enchantment in upkeep
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority enchantment in Upkeep
[INFO] [stdout]    ✔  Given Alice is the active player in Upkeep with an own-turn-priority enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority enchantment at beginning of combat
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority enchantment at BeginningOfCombat
[INFO] [stdout]    ✔  Given Alice is the active player in BeginningOfCombat with an own-turn-priority enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority enchantment after attackers
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority enchantment after attackers are declared
[INFO] [stdout]    ✔  Given Alice is the active player after declaring attackers with an own-turn-priority enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority enchantment after blockers
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority enchantment after blockers are declared
[INFO] [stdout]    ✔  Given Alice is the active player after declaring blockers with an own-turn-priority enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Cast an own-turn-priority enchantment after combat damage
[INFO] [stdout]   Scenario: Alice casts and resolves an own-turn-priority enchantment after combat damage
[INFO] [stdout]    ✔  Given Alice is the active player after combat damage with an own-turn-priority enchantment card in hand and priority
[INFO] [stdout]    ✔  When Alice casts the enchantment spell
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Target a blocking creature with a supported instant spell
[INFO] [stdout]   Scenario: Alice cannot target a player with a blocking-creature spell
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a blocking-creature instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the blocking-creature instant spell targeting Bob
[INFO] [stdout]    ✔  Then casting fails because the spell only supports creature targets
[INFO] [stdout]   Scenario: Alice cannot target a creature that is not currently blocking
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a blocking-creature instant spell and Bob's creature on the battlefield
[INFO] [stdout]    ✔  When Alice casts the blocking-creature instant spell targeting Bob's creature
[INFO] [stdout]    ✔  Then casting fails because the target creature is not currently blocking
[INFO] [stdout]   Scenario: Alice destroys Bob's blocker after blockers are declared
[INFO] [stdout]    ✔  Given Bob has declared blockers and Alice still has a blocking-creature instant spell in hand with priority
[INFO] [stdout]    ✔  When Alice casts the blocking-creature instant spell targeting Bob's blocker
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Bob's blocker dies
[INFO] [stdout]   Scenario: Alice marks nonlethal damage on Bob's blocker after blockers are declared
[INFO] [stdout]    ✔  Given Bob has declared blockers and Alice still has a nonlethal blocking-creature instant spell in hand with priority
[INFO] [stdout]    ✔  When Alice casts the blocking-creature instant spell targeting Bob's blocker
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Bob's blocker has 1 damage marked and remains blocking
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 4 scenarios (4 passed)
[INFO] [stdout] 18 steps (18 passed)
[INFO] [stdout] Feature: Target an opponent player with a spell
[INFO] [stdout]   Scenario: Alice casts and resolves an opponent-targeted instant at Bob
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an opponent-targeted instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the opponent-targeted instant spell targeting Bob
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Bob
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob loses 2 life
[INFO] [stdout]   Scenario: Alice cannot target herself with an opponent-targeted instant
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an opponent-targeted instant spell in hand
[INFO] [stdout]    ✔  When Alice tries to cast the opponent-targeted instant spell targeting herself
[INFO] [stdout]    ✔  Then casting fails because the spell requires an opponent target
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Target self when the spell allows any player
[INFO] [stdout]   Scenario: Alice casts and resolves a targeted instant at herself
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a targeted instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the targeted instant spell targeting herself
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Alice
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice loses 2 life
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 7 steps (7 passed)
[INFO] [stdout] Feature: Target a controlled creature outside combat
[INFO] [stdout]   Scenario: Alice casts and resolves a controlled-creature instant at her creature
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a controlled-creature instant spell and Alice's creature on the battlefield
[INFO] [stdout]    ✔  When Alice casts the controlled-creature instant spell targeting her creature
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Alice's creature
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's creature dies
[INFO] [stdout]   Scenario: Alice cannot target Bob's creature with a controlled-creature instant
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a controlled-creature instant spell and only Bob's creature on the battlefield
[INFO] [stdout]    ✔  When Alice tries to cast the controlled-creature instant spell targeting Bob's creature
[INFO] [stdout]    ✔  Then casting fails because the spell requires a controlled creature target
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Target an opponents creature outside combat
[INFO] [stdout]   Scenario: Alice casts an opponents-creature instant at Bob's creature in FirstMain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an opponents-creature instant spell and Bob's creature on the battlefield
[INFO] [stdout]    ✔  When Alice casts the opponents-creature instant spell targeting Bob's creature
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Bob's creature
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 3 steps (3 passed)
[INFO] [stdout] Feature: Destroy target creature
[INFO] [stdout]   Scenario: Alice casts and resolves a destroy-creature instant at Bob's creature
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a destroy-creature instant spell and Bob's creature on the battlefield
[INFO] [stdout]    ✔  When Alice casts the destroy-creature instant spell targeting Bob's creature
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Bob's creature
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's creature dies
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 7 steps (7 passed)
[INFO] [stdout] Feature: Reject a controlled creature for an opponents-creature spell
[INFO] [stdout]   Scenario: Alice cannot target her own creature with an opponents-creature instant
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an opponents-creature instant spell and only her creature on the battlefield
[INFO] [stdout]    ✔  When Alice tries to cast the opponents-creature instant spell targeting her creature
[INFO] [stdout]    ✔  Then casting fails because the spell requires an opponents-creature target
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 3 steps (3 passed)
[INFO] [stdout] Feature: Resolve an opponents-creature spell outside combat
[INFO] [stdout]   Scenario: Alice casts and resolves an opponents-creature instant at Bob's creature in FirstMain
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an opponents-creature instant spell and Bob's creature on the battlefield
[INFO] [stdout]    ✔  When Alice casts the opponents-creature instant spell targeting Bob's creature
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Bob's creature
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob's creature dies
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 7 steps (7 passed)
[INFO] [stdout] Feature: Target a controlled attacking creature with a supported instant spell
[INFO] [stdout]   Scenario: Alice can target her attacker after attackers are declared
[INFO] [stdout]    ✔  Given Alice has priority after attackers are declared with a controlled-attacking-creature instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the controlled-attacking-creature instant spell targeting her attacker
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Alice's attacker dies
[INFO] [stdout]   Scenario: Alice marks nonlethal damage on her attacker after attackers are declared
[INFO] [stdout]    ✔  Given Alice has priority after attackers are declared with a nonlethal controlled-attacking-creature instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the controlled-attacking-creature instant spell targeting her attacker
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Alice's attacker has 1 damage marked and remains attacking
[INFO] [stdout]   Scenario: Bob cannot target Alice's attacker with a controlled-attacking-creature instant
[INFO] [stdout]    ✔  Given Bob has priority after attackers are declared with a controlled-attacking-creature instant spell in hand
[INFO] [stdout]    ✔  When Bob casts the controlled-attacking-creature instant spell targeting Alice's attacker
[INFO] [stdout]    ✔  Then casting fails because the creature target is not legal for the spell
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 15 steps (15 passed)
[INFO] [stdout] Feature: Target a controlled blocking creature with a supported instant spell
[INFO] [stdout]   Scenario: Bob cannot target Alice's attacker with a controlled-blocking-creature spell
[INFO] [stdout]    ✔  Given Bob has priority after blockers are declared with a controlled-blocking-creature instant spell in hand
[INFO] [stdout]    ✔  When Bob casts the controlled-blocking-creature instant spell targeting Alice's attacker
[INFO] [stdout]    ✔  Then casting fails because the creature target is not legal for the spell
[INFO] [stdout]   Scenario: Bob destroys his blocker with a controlled-blocking-creature spell
[INFO] [stdout]    ✔  Given Bob has priority after blockers are declared with a controlled-blocking-creature instant spell in hand
[INFO] [stdout]    ✔  When Bob casts the controlled-blocking-creature instant spell targeting his blocker
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then Bob's blocker dies
[INFO] [stdout]   Scenario: Bob marks nonlethal damage on his blocker with a controlled-blocking-creature spell
[INFO] [stdout]    ✔  Given Bob has priority after blockers are declared with a nonlethal controlled-blocking-creature instant spell in hand
[INFO] [stdout]    ✔  When Bob casts the controlled-blocking-creature instant spell targeting his blocker
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then Bob's blocker has 1 damage marked and remains blocking
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 15 steps (15 passed)
[INFO] [stdout] Feature: Target an opponent's blocking creature with a supported instant spell
[INFO] [stdout]   Scenario: Alice can target Bob's blocker after blockers are declared
[INFO] [stdout]    ✔  Given Alice has priority after blockers are declared with an opponent-blocking-creature instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the opponent-blocking-creature instant spell targeting Bob's blocker
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Bob's blocker dies
[INFO] [stdout]   Scenario: Alice marks nonlethal damage on Bob's blocker after blockers are declared
[INFO] [stdout]    ✔  Given Alice has priority after blockers are declared with a nonlethal opponent-blocking-creature instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the opponent-blocking-creature instant spell targeting Bob's blocker
[INFO] [stdout]    ✔  Then the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Bob's blocker has 1 damage marked and remains blocking
[INFO] [stdout]   Scenario: Bob cannot target his own blocker with an opponent-blocking-creature instant
[INFO] [stdout]    ✔  Given Bob has priority after blockers are declared with an opponent-blocking-creature instant spell in hand
[INFO] [stdout]    ✔  When Bob casts the opponent-blocking-creature instant spell targeting his blocker
[INFO] [stdout]    ✔  Then casting fails because the creature target is not legal for the spell
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 15 steps (15 passed)
[INFO] [stdout] Feature: Target an opponent's attacking creature with a supported instant spell
[INFO] [stdout]   Scenario: Bob destroys Alice's attacker with an opponent-attacking-creature spell
[INFO] [stdout]    ✔  Given Bob has priority after attackers are declared with an opponent-attacking-creature instant spell in hand
[INFO] [stdout]    ✔  When Bob casts the opponent-attacking-creature instant spell targeting Alice's attacker
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then Alice's attacker dies
[INFO] [stdout]   Scenario: Bob cannot target his blocker with an opponent-attacking-creature spell
[INFO] [stdout]    ✔  Given Bob has priority after blockers are declared with an opponent-attacking-creature instant spell in hand
[INFO] [stdout]    ✔  When Bob casts the opponent-attacking-creature instant spell targeting his blocker
[INFO] [stdout]    ✔  Then casting fails because the creature target is not legal for the spell
[INFO] [stdout]   Scenario: Bob marks nonlethal damage on Alice's attacker with an opponent-attacking-creature spell
[INFO] [stdout]    ✔  Given Bob has priority after attackers are declared with a nonlethal opponent-attacking-creature instant spell in hand
[INFO] [stdout]    ✔  When Bob casts the opponent-attacking-creature instant spell targeting Alice's attacker
[INFO] [stdout]    ✔  Then the spell is on the stack under Bob's control
[INFO] [stdout]    ✔  When Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then Alice's attacker has 1 damage marked and remains attacking
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 15 steps (15 passed)
[INFO] [stdout] Feature: Exile target creature
[INFO] [stdout]   Scenario: Alice casts and resolves an exile-creature instant at Bob's creature
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an exile-creature instant spell and Bob's creature on the battlefield
[INFO] [stdout]    ✔  When Alice casts the exile-creature instant spell targeting Bob's creature
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Bob's creature
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits CardMovedZone to exile
[INFO] [stdout]    ✔  And Bob's creature is in exile
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 8 steps (8 passed)
[INFO] [stdout] Feature: Exile target card from graveyard
[INFO] [stdout]   Scenario: Alice casts and resolves an exile-graveyard-card instant at Bob's graveyard card
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with an exile-graveyard-card instant spell and Bob's card in the graveyard
[INFO] [stdout]    ✔  When Alice casts the exile-graveyard-card instant spell targeting Bob's graveyard card
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Bob's graveyard card
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the game emits CardMovedZone to exile
[INFO] [stdout]    ✔  And Bob's graveyard card is in exile
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 8 steps (8 passed)
[INFO] [stdout] Feature: Pump target creature until end of turn
[INFO] [stdout]   Scenario: A spell gives a creature +2/+2 until end of turn
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a pump-creature instant spell and her creature on the battlefield
[INFO] [stdout]    ✔  When Alice casts the pump-creature instant spell targeting her creature
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Alice's creature
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's creature gets +2/+2 until end of turn
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 7 steps (7 passed)
[INFO] [stdout] Feature: Pump spell changes combat outcome
[INFO] [stdout]   Scenario: A post-blockers pump lets the attacker survive combat
[INFO] [stdout]    ✔  Given Alice has priority after blockers are declared with a pump-creature instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the pump-creature instant spell targeting her attacker
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Alice's attacker
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Alice's attacker gets +2/+2 until end of turn
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  When combat damage resolves
[INFO] [stdout]    ✔  Then Bob's blocker dies in combat
[INFO] [stdout]    ✔  And Alice's attacker survives combat
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 12 steps (12 passed)
[INFO] [stdout] Feature: Targeted gain life spell
[INFO] [stdout]   Scenario: Alice casts and resolves a targeted gain-life instant at Bob
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a targeted gain-life instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the targeted gain-life instant spell targeting Bob
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Bob
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob gains 3 life
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 7 steps (7 passed)
[INFO] [stdout] Feature: Targeted lose life spell
[INFO] [stdout]   Scenario: Alice casts and resolves a targeted lose-life instant at Bob
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with a targeted lose-life instant spell in hand
[INFO] [stdout]    ✔  When Alice casts the targeted lose-life instant spell targeting Bob
[INFO] [stdout]    ✔  Then the spell is on the stack targeting Bob
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And Bob loses 3 life from the spell
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 7 steps (7 passed)
[INFO] [stdout] Feature: Activate non-mana ability in priority window
[INFO] [stdout]   Scenario: Alice activates a supported non-mana ability in first main
[INFO] [stdout]    ✔  Given Alice is in first main with a life-gain artifact on the battlefield and priority
[INFO] [stdout]    ✔  When Alice activates the tracked ability
[INFO] [stdout]    ✔  Then the activated ability is on the stack under Alice's control
[INFO] [stdout]    ✔  And the tracked permanent is tapped
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Alice has 21 life
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: Reject an own-turn-priority artifact as a response
[INFO] [stdout]   Scenario: Bob cannot cast an own-turn-priority artifact during Alice's turn
[INFO] [stdout]    ✔  Given Alice has cast an instant spell and still holds priority with Bob's own-turn artifact card in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob tries to cast the artifact spell
[INFO] [stdout]    ✔  Then the action is rejected because the spell only supports open-priority casting during its controller's turn
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Reject an own-turn-priority enchantment as a response
[INFO] [stdout]   Scenario: Bob cannot cast an own-turn-priority enchantment during Alice's turn
[INFO] [stdout]    ✔  Given Alice has cast an instant spell and still holds priority with Bob's own-turn enchantment card in hand
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob tries to cast the enchantment spell
[INFO] [stdout]    ✔  Then the action is rejected because the spell only supports open-priority casting during its controller's turn
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Upkeep opens a priority window
[INFO] [stdout]   Scenario: Advancing from Untap to Upkeep opens priority for the active player
[INFO] [stdout]    ✔  Given a two-player game is in Untap
[INFO] [stdout]    ✔  And Alice is the active player
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When the game advances the turn
[INFO] [stdout]    ✔  Then the phase becomes Upkeep
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]   Scenario: Two consecutive passes close an empty Upkeep priority window
[INFO] [stdout]    ✔  Given Alice is the active player in Upkeep
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then no priority window is open
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: Draw opens a priority window after the automatic draw
[INFO] [stdout]   Scenario: Advancing from Upkeep to Draw opens priority for the active player after the turn draw
[INFO] [stdout]    ✔  Given a two-player game is in Upkeep
[INFO] [stdout]    ✔  And Alice is the active player
[INFO] [stdout]    ✔  And Alice has at least one card in her library
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When the game advances the turn
[INFO] [stdout]    ✔  Then Alice draws one card
[INFO] [stdout]    ✔  And the phase becomes Draw
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the game emits CardDrawn with draw kind TurnStep
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]   Scenario: Two consecutive passes close an empty Draw priority window
[INFO] [stdout]    ✔  Given Alice is the active player in Draw
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then no priority window is open
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 16 steps (16 passed)
[INFO] [stdout] Feature: Main phases open a priority window
[INFO] [stdout]   Scenario: Advancing from Draw to FirstMain opens priority for the active player
[INFO] [stdout]    ✔  Given a two-player game is in Draw
[INFO] [stdout]    ✔  And Alice is the active player
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When the game advances the turn
[INFO] [stdout]    ✔  Then the phase becomes FirstMain
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]   Scenario: Two consecutive passes close an empty FirstMain priority window
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then no priority window is open
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 13 steps (13 passed)
[INFO] [stdout] Feature: EndStep opens a priority window before cleanup can finish the turn
[INFO] [stdout]   Scenario: Advancing from SecondMain to EndStep opens priority for the active player
[INFO] [stdout]    ✔  Given Alice is the active player in SecondMain
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  And the game advances the turn
[INFO] [stdout]    ✔  Then the phase becomes EndStep
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]   Scenario: Two consecutive passes close an empty EndStep priority window
[INFO] [stdout]    ✔  Given Alice is the active player in EndStep
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then no priority window is open
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 15 steps (15 passed)
[INFO] [stdout] Feature: Mana pools clear when the game advances to the next phase
[INFO] [stdout]   Scenario: Mana produced in Upkeep is lost when the game advances to Draw
[INFO] [stdout]    ✔  Given Alice is the active player in Upkeep with a land on the battlefield
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  When Alice taps her land for mana
[INFO] [stdout]    ✔  Then Alice has 1 mana
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  And the game advances the turn
[INFO] [stdout]    ✔  Then the phase becomes Draw
[INFO] [stdout]    ✔  And Alice has 0 mana
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: A player loses when they draw from an empty library
[INFO] [stdout]   Scenario: A player loses when they must draw from an empty library during the draw step
[INFO] [stdout]    ✔  Given Alice is the active player in Upkeep
[INFO] [stdout]    ✔  And Alice has no cards in her library
[INFO] [stdout]    ✔  When the game advances the turn
[INFO] [stdout]    ✔  Then the game emits GameEnded with reason EmptyLibraryDraw
[INFO] [stdout]    ✔  And Alice loses the game
[INFO] [stdout]    ✔  And Bob wins the game
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 6 steps (6 passed)
[INFO] [stdout] Feature: Turn progression
[INFO] [stdout]   Scenario: End Step advances to the next player's Untap when cleanup is satisfied
[INFO] [stdout]    ✔  Given a two-player game is in EndStep
[INFO] [stdout]    ✔  And Alice is the active player
[INFO] [stdout]    ✔  And the current turn number is 3
[INFO] [stdout]    ✔  When the game advances the turn
[INFO] [stdout]    ✔  Then Bob becomes the active player
[INFO] [stdout]    ✔  And the turn number becomes 4
[INFO] [stdout]    ✔  And the phase becomes Untap
[INFO] [stdout]    ✔  And the game emits TurnProgressed
[INFO] [stdout]   Scenario: Entering Draw produces the automatic turn draw
[INFO] [stdout]    ✔  Given a two-player game is in Upkeep
[INFO] [stdout]    ✔  And Alice is the active player
[INFO] [stdout]    ✔  And Alice has at least one card in her library
[INFO] [stdout]    ✔  When the game advances the turn
[INFO] [stdout]    ✔  Then Alice draws one card
[INFO] [stdout]    ✔  And the phase becomes Draw
[INFO] [stdout]    ✔  And the game emits CardDrawn with draw kind TurnStep
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 15 steps (15 passed)
[INFO] [stdout] Feature: Explicit draw effects can draw multiple cards
[INFO] [stdout]   Scenario: An explicit effect draws two cards
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with at least two cards in her library for an explicit draw effect
[INFO] [stdout]    ✔  When Alice draws 2 cards through an explicit draw effect
[INFO] [stdout]    ✔  Then Alice draws 2 cards from the explicit effect
[INFO] [stdout]    ✔  And the game emits 2 CardDrawn events with draw kind ExplicitEffect
[INFO] [stdout]   Scenario: The active player can target another player with an explicit draw effect
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain and Bob has at least two cards in his library for an explicit draw effect
[INFO] [stdout]    ✔  When Alice makes Bob draw 2 cards through an explicit draw effect
[INFO] [stdout]    ✔  Then Bob draws 2 cards from the explicit effect
[INFO] [stdout]    ✔  And the game emits 2 CardDrawn events with draw kind ExplicitEffect
[INFO] [stdout]   Scenario: An explicit effect ends the game if it tries to draw past an empty library
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain with only one card in her library for an explicit draw effect
[INFO] [stdout]    ✔  When Alice draws 2 cards through an explicit draw effect
[INFO] [stdout]    ✔  Then Alice draws 1 cards from the explicit effect
[INFO] [stdout]    ✔  And the game emits GameEnded with reason EmptyLibraryDraw
[INFO] [stdout]    ✔  And Alice loses the game
[INFO] [stdout]    ✔  And Bob wins the game
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 14 steps (14 passed)
[INFO] [stdout] Feature: Marked damage is cleared when the turn ends
[INFO] [stdout]   Scenario: Surviving creature loses marked damage at end of turn
[INFO] [stdout]    ✔  Given a creature survives combat with damage marked on it
[INFO] [stdout]    ✔  When the game advances from EndStep to the next player's Untap
[INFO] [stdout]    ✔  Then that surviving creature has no damage marked on it
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 3 steps (3 passed)
[INFO] [stdout] Feature: Discard down to maximum hand size when the turn ends
[INFO] [stdout]   Scenario: The turn cannot advance while cleanup discard is still required
[INFO] [stdout]    ✔  Given Alice is the active player in EndStep and has eight cards in hand
[INFO] [stdout]    ✔  When Alice tries to advance the turn
[INFO] [stdout]    ✔  Then the action is rejected because cleanup discard is still required
[INFO] [stdout]    ✔  And Alice still has eight cards in hand
[INFO] [stdout]   Scenario: Discarding for cleanup moves a card from hand to graveyard
[INFO] [stdout]    ✔  Given Alice is the active player in EndStep and has eight cards in hand
[INFO] [stdout]    ✔  When Alice discards one card for cleanup
[INFO] [stdout]    ✔  Then the discarded card leaves Alice's hand
[INFO] [stdout]    ✔  And the discarded card enters Alice's graveyard
[INFO] [stdout]    ✔  And Alice has seven cards in hand
[INFO] [stdout]    ✔  And the game emits CardDiscarded with discard kind CleanupHandSize
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 10 steps (10 passed)
[INFO] [stdout] Feature: Cast a creature spell
[INFO] [stdout]   Scenario: Casting a creature spell uses the stack before it resolves
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain
[INFO] [stdout]    ✔  And Alice has a creature card in hand with valid power and toughness
[INFO] [stdout]    ✔  And Alice has enough mana to pay its cost
[INFO] [stdout]    ✔  When Alice casts the creature spell
[INFO] [stdout]    ✔  Then the card leaves Alice's hand
[INFO] [stdout]    ✔  And the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And the spell has not resolved yet
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the game emits SpellPutOnStack
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the card enters Alice's battlefield
[INFO] [stdout]    ✔  And the card has summoning sickness
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]   Scenario: A land cannot be cast as a spell
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain
[INFO] [stdout]    ✔  And Alice has a land card in hand
[INFO] [stdout]    ✔  When Alice tries to cast the card as a spell
[INFO] [stdout]    ✔  Then the action is rejected
[INFO] [stdout]    ✔  And the land remains in Alice's hand
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 20 steps (20 passed)
[INFO] [stdout] Feature: Combat actions open priority windows
[INFO] [stdout]   Scenario: Declaring attackers opens priority for the active player
[INFO] [stdout]    ✔  Given Alice has declared attackers in Combat
[INFO] [stdout]    ✔  Then the phase becomes DeclareBlockers
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout]   Scenario: Declaring blockers opens priority for the active player
[INFO] [stdout]    ✔  Given Bob has declared blockers in Combat
[INFO] [stdout]    ✔  Then the phase becomes CombatDamage
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 8 steps (8 passed)
[INFO] [stdout] Feature: Entering Combat opens a priority window
[INFO] [stdout]   Scenario: Advancing from FirstMain to Combat opens priority for the active player
[INFO] [stdout]    ✔  Given Alice enters Combat from FirstMain
[INFO] [stdout]    ✔  Then the phase becomes BeginningOfCombat
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Resolving combat damage opens a priority window
[INFO] [stdout]   Scenario: Combat damage reopens priority for the active player
[INFO] [stdout]    ✔  Given Alice attacks with an unblocked creature
[INFO] [stdout]    ✔  When combat damage resolves
[INFO] [stdout]    ✔  Then the phase becomes EndOfCombat
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the stack is empty
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 5 steps (5 passed)
[INFO] [stdout] Feature: A creature with zero toughness dies after entering the battlefield
[INFO] [stdout]   Scenario: Casting a creature spell with zero toughness
[INFO] [stdout]    ✔  Given Alice is the active player in FirstMain
[INFO] [stdout]    ✔  And Alice has a creature card in hand with zero toughness
[INFO] [stdout]    ✔  And Alice has enough mana to pay its cost
[INFO] [stdout]    ✔  When Alice casts the zero-toughness creature spell
[INFO] [stdout]    ✔  Then the card leaves Alice's hand
[INFO] [stdout]    ✔  And the spell is on the stack under Alice's control
[INFO] [stdout]    ✔  And the spell has not resolved yet
[INFO] [stdout]    ✔  And Alice has priority
[INFO] [stdout]    ✔  And the game emits SpellPutOnStack
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then the game emits StackTopResolved
[INFO] [stdout]    ✔  And the card is not on Alice's battlefield
[INFO] [stdout]    ✔  And the card enters Alice's graveyard
[INFO] [stdout]    ✔  And the game emits SpellCast with outcome EnteredBattlefield
[INFO] [stdout]    ✔  And the game emits CreatureDied
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 16 steps (16 passed)
[INFO] [stdout] Feature: Combat damage marking
[INFO] [stdout]   Scenario: Blocked creatures mark damage on each other
[INFO] [stdout]    ✔  Given Alice attacks with a creature
[INFO] [stdout]    ✔  And Bob blocks with a creature
[INFO] [stdout]    ✔  When combat damage resolves
[INFO] [stdout]    ✔  Then the attacker's damage is marked on the blocking creature
[INFO] [stdout]    ✔  And the blocker's damage is marked on the attacking creature
[INFO] [stdout]    ✔  And the game emits CombatDamageResolved
[INFO] [stdout]   Scenario: Unblocked damage reduces defending player life
[INFO] [stdout]    ✔  Given Alice attacks with an unblocked creature
[INFO] [stdout]    ✔  And Bob is the defending player
[INFO] [stdout]    ✔  When combat damage resolves
[INFO] [stdout]    ✔  Then Bob loses life equal to the attacker's power
[INFO] [stdout]    ✔  And the game emits CombatDamageResolved
[INFO] [stdout]   Scenario: Unblocked lethal combat damage ends the game
[INFO] [stdout]    ✔  Given Alice attacks with an unblocked creature
[INFO] [stdout]    ✔  And Bob is at 3 life as the defending player
[INFO] [stdout]    ✔  When combat damage resolves
[INFO] [stdout]    ✔  Then Bob loses the game due to zero life
[INFO] [stdout]    ✔  And the game emits GameEnded for ZeroLife
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 16 steps (16 passed)
[INFO] [stdout] Feature: Combat supports multiple blockers per attacker
[INFO] [stdout]   Scenario: A defending player can assign two blockers to the same attacker
[INFO] [stdout]    ✔  Given Alice attacks with a creature and Bob has two creatures that could block the same attacker
[INFO] [stdout]    ✔  When Bob tries to assign both blockers to that attacker
[INFO] [stdout]    ✔  Then the declaration is accepted with both blockers
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 3 steps (3 passed)
[INFO] [stdout] Feature: Creature destruction after lethal combat damage
[INFO] [stdout]   Scenario: A creature with lethal damage is moved to the graveyard
[INFO] [stdout]    ✔  Given a creature on the battlefield has damage marked on it equal to its toughness
[INFO] [stdout]    ✔  When combat damage resolution finishes
[INFO] [stdout]    ✔  Then that creature leaves the battlefield
[INFO] [stdout]    ✔  And that creature enters its controller's graveyard
[INFO] [stdout]    ✔  And the game emits CreatureDied
[INFO] [stdout]   Scenario: A creature with nonlethal damage remains on the battlefield
[INFO] [stdout]    ✔  Given a creature on the battlefield has damage marked on it less than its toughness
[INFO] [stdout]    ✔  When combat damage resolution finishes
[INFO] [stdout]    ✔  Then that creature remains on the battlefield
[INFO] [stdout]    ✔  And no CreatureDied event is emitted for that creature
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 9 steps (9 passed)
[INFO] [stdout] Feature: First strike changes combat damage order
[INFO] [stdout]   Scenario: A first-strike attacker kills its blocker before normal retaliation
[INFO] [stdout]    ✔  Given Alice attacks with a first-strike creature and Bob blocks with an equal creature
[INFO] [stdout]    ✔  When combat damage resolves
[INFO] [stdout]    ✔  Then Bob's blocker dies in combat
[INFO] [stdout]    ✔  And Alice's attacker survives combat
[INFO] [stdout]    ✔  And Alice's attacker has no combat damage marked on it
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 5 steps (5 passed)
[INFO] [stdout] Feature: Haste creatures can attack immediately
[INFO] [stdout]   Scenario: A creature with haste attacks on the turn it enters
[INFO] [stdout]    ✔  Given Alice is in DeclareAttackers with a haste creature that entered this turn
[INFO] [stdout]    ✔  When Alice declares that creature as an attacker
[INFO] [stdout]    ✔  Then the attacker declaration is accepted
[INFO] [stdout]    ✔  And that creature is attacking
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Trample assigns excess damage to the defending player
[INFO] [stdout]   Scenario: A blocked trampling attacker deals excess combat damage to the player
[INFO] [stdout]    ✔  Given Alice attacks with a trample creature and Bob blocks with a smaller creature
[INFO] [stdout]    ✔  When combat damage resolves
[INFO] [stdout]    ✔  Then Bob loses 2 life from trample damage
[INFO] [stdout]    ✔  And Bob's blocker dies in combat
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 4 steps (4 passed)
[INFO] [stdout] Feature: Vigilance creatures do not tap to attack
[INFO] [stdout]   Scenario: A creature with vigilance attacks without tapping
[INFO] [stdout]    ✔  Given Alice is in DeclareAttackers with a vigilance creature without summoning sickness
[INFO] [stdout]    ✔  When Alice declares that creature as an attacker
[INFO] [stdout]    ✔  Then the attacker declaration is accepted
[INFO] [stdout]    ✔  And that creature is attacking
[INFO] [stdout]    ✔  And that creature remains untapped
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 5 steps (5 passed)
[INFO] [stdout] Feature: Explicit life effects can target any player
[INFO] [stdout]   Scenario: A player makes another player lose life
[INFO] [stdout]    ✔  Given Bob has 20 life
[INFO] [stdout]    ✔  When Alice makes Bob lose 3 life
[INFO] [stdout]    ✔  Then Bob has 17 life
[INFO] [stdout]   Scenario: A player makes another player gain life
[INFO] [stdout]    ✔  Given Bob has 20 life
[INFO] [stdout]    ✔  When Alice makes Bob gain 2 life
[INFO] [stdout]    ✔  Then Bob has 22 life
[INFO] [stdout]   Scenario: A targeted life loss can end the game
[INFO] [stdout]    ✔  Given Bob has 1 life
[INFO] [stdout]    ✔  When Alice makes Bob lose 1 life
[INFO] [stdout]    ✔  Then Bob has 0 life
[INFO] [stdout]    ✔  And the game emits GameEnded with reason ZeroLife
[INFO] [stdout]    ✔  And Bob loses the game
[INFO] [stdout]    ✔  And Alice wins the game
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 12 steps (12 passed)
[INFO] [stdout] Feature: A player loses when their life total reaches zero
[INFO] [stdout]   Scenario: A player loses when an effect reduces their life total to zero
[INFO] [stdout]    ✔  Given Alice has 1 life
[INFO] [stdout]    ✔  When Alice loses 1 life
[INFO] [stdout]    ✔  Then Alice has 0 life
[INFO] [stdout]    ✔  And the game emits GameEnded with reason ZeroLife
[INFO] [stdout]    ✔  And Alice loses the game
[INFO] [stdout]    ✔  And Bob wins the game
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 1 scenario (1 passed)
[INFO] [stdout] 6 steps (6 passed)
[INFO] [stdout] Feature: Creatures with keyword abilities modify combat interactions
[INFO] [stdout]   Scenario: A creature with flying can be blocked by a creature with flying
[INFO] [stdout]    ✔  Given Alice attacks with a flying creature
[INFO] [stdout]    ✔  And Bob controls a creature with flying
[INFO] [stdout]    ✔  When Bob declares that creature as a blocker against the flying attacker
[INFO] [stdout]    ✔  Then the blocker assignment is accepted
[INFO] [stdout]   Scenario: A creature with flying can be blocked by a creature with reach
[INFO] [stdout]    ✔  Given Alice attacks with a flying creature
[INFO] [stdout]    ✔  And Bob controls a creature with reach
[INFO] [stdout]    ✔  When Bob declares that creature as a blocker against the flying attacker
[INFO] [stdout]    ✔  Then the blocker assignment is accepted
[INFO] [stdout]   Scenario: A creature with flying cannot be blocked by a creature without flying or reach
[INFO] [stdout]    ✔  Given Alice attacks with a flying creature
[INFO] [stdout]    ✔  And Bob controls a creature without flying or reach
[INFO] [stdout]    ✔  When Bob tries to declare that creature as a blocker against the flying attacker
[INFO] [stdout]    ✔  Then the action is rejected because the blocker cannot block flying creatures
[INFO] [stdout]   Scenario: A creature without flying can block a non-flying attacker
[INFO] [stdout]    ✔  Given Alice attacks with a non-flying creature
[INFO] [stdout]    ✔  And Bob controls a non-flying creature
[INFO] [stdout]    ✔  When Bob declares that creature as a blocker
[INFO] [stdout]    ✔  Then the blocker assignment is accepted
[INFO] [stdout]   Scenario: A creature with both flying and reach can block flying attackers
[INFO] [stdout]    ✔  Given Alice attacks with a flying creature
[INFO] [stdout]    ✔  And Bob controls a creature with both flying and reach
[INFO] [stdout]    ✔  When Bob declares that creature as a blocker against the flying attacker
[INFO] [stdout]    ✔  Then the blocker assignment is accepted
[INFO] [stdout]   Scenario: An unblocked flying attacker deals damage to the defending player
[INFO] [stdout]    ✔  Given Alice attacks with a flying creature that has 3 power
[INFO] [stdout]    ✔  And Bob has no creatures that can block flying
[INFO] [stdout]    ✔  And the flying attacker is unblocked
[INFO] [stdout]    ✔  When combat damage resolves
[INFO] [stdout]    ✔  Then Bob loses 3 life
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 6 scenarios (6 passed)
[INFO] [stdout] 25 steps (25 passed)
[INFO] [stdout] Feature: Black-red sacrifice golden matchups
[INFO] [stdout]   Scenario: A sacrifice outlet can be cashed in for value through the stack
[INFO] [stdout]    ✔  Given Alice has a sacrifice outlet artifact on the battlefield in first main
[INFO] [stdout]    ✔  When Alice activates the tracked ability
[INFO] [stdout]    ✔  Then the activated ability is on the stack under Alice's control
[INFO] [stdout]    ✔  And the tracked sacrifice artifact is in Alice's graveyard
[INFO] [stdout]    ✔  When Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Alice has 22 life
[INFO] [stdout]   Scenario: Discard strips a creature card from the opponent's hand
[INFO] [stdout]    ✔  Given Bob is in first main with a discard spell while Alice holds a creature card
[INFO] [stdout]    ✔  When Bob casts the discard spell targeting Alice and choosing her tracked creature card
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then Alice's tracked creature card is in her graveyard
[INFO] [stdout]   Scenario: Removal trades off a creature and recursion buys it back
[INFO] [stdout]    ✔  Given Bob is in first main with removal while Alice has a creature on the battlefield and recursion in hand
[INFO] [stdout]    ✔  When Bob casts the destroy-creature instant spell targeting Alice's creature
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  Then Alice's creature dies
[INFO] [stdout]    ✔  When Alice reaches first main with the recursion spell available
[INFO] [stdout]    ✔  And Alice casts the recursion spell targeting her graveyard creature
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Alice's tracked creature card returns to her hand
[INFO] [stdout]    ✔  When Alice casts the recovered creature spell
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Alice's recovered creature enters the battlefield
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 26 steps (26 passed)
[INFO] [stdout] Feature: Green-white counters golden matchups
[INFO] [stdout]   Scenario: Distributed counters turn a pair of creatures into a larger attack
[INFO] [stdout]    ✔  Given Alice is in first main with two creatures ready to grow and a distributed counter spell
[INFO] [stdout]    ✔  When Alice casts the distributed counter spell targeting both tracked creatures
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then both tracked creatures are 2/2
[INFO] [stdout]    ✔  When Alice attacks with both tracked creatures
[INFO] [stdout]    ✔  And both players pass through blockers without declaring blockers
[INFO] [stdout]    ✔  And combat damage resolves
[INFO] [stdout]    ✔  Then Bob loses 4 life from the team attack
[INFO] [stdout]   Scenario: Token setup plus anthem turns a small board into a meaningful swing
[INFO] [stdout]    ✔  Given Alice is in first main with a token spell and an anthem enchantment in hand
[INFO] [stdout]    ✔  When Alice casts the token spell
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Alice creates two tracked creature tokens
[INFO] [stdout]    ✔  When Alice reaches next first main with the anthem still in hand
[INFO] [stdout]    ✔  And Alice casts the anthem enchantment
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then both tracked tokens are 2/2
[INFO] [stdout]    ✔  When Alice attacks with both tracked creatures
[INFO] [stdout]    ✔  And both players pass through blockers without declaring blockers
[INFO] [stdout]    ✔  And combat damage resolves
[INFO] [stdout]    ✔  Then Bob loses 4 life from the team attack
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 23 steps (23 passed)
[INFO] [stdout] Feature: White-blue tempo golden matchups
[INFO] [stdout]   Scenario: Bounce removes the flying blocker before blocks and the attacker connects
[INFO] [stdout]    ✔  Given Alice has a flying attacker and a bounce spell after attackers while Bob has a flying blocker
[INFO] [stdout]    ✔  When Alice casts the bounce spell targeting Bob's blocker
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  Then Bob's blocker returns to his hand
[INFO] [stdout]    ✔  When both players pass through blockers without declaring blockers
[INFO] [stdout]    ✔  And combat damage resolves
[INFO] [stdout]    ✔  Then Bob loses 2 life from the flying attack
[INFO] [stdout]   Scenario: A flying combat trick wins the air combat exchange
[INFO] [stdout]    ✔  Given Alice has a flying attacker and a pump spell after blockers while Bob has blocked with a flying creature
[INFO] [stdout]    ✔  When Alice casts the pump-creature instant spell targeting her attacker
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  And Alice passes priority
[INFO] [stdout]    ✔  And Bob passes priority
[INFO] [stdout]    ✔  And combat damage resolves
[INFO] [stdout]    ✔  Then Bob's blocker dies in combat
[INFO] [stdout]    ✔  And Alice's attacker survives combat
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 2 scenarios (2 passed)
[INFO] [stdout] 17 steps (17 passed)
[INFO] [stdout] Feature: Exile zone exists as a player-owned game zone
[INFO] [stdout]   Scenario: A creature can be exiled from the battlefield
[INFO] [stdout]    ✔  Given Alice controls a creature on the battlefield
[INFO] [stdout]    ✔  When a spell or ability exiles that creature
[INFO] [stdout]    ✔  Then that creature is no longer on the battlefield
[INFO] [stdout]    ✔  And that creature enters Alice's exile zone
[INFO] [stdout]    ✔  And the game emits CardMovedZone to exile
[INFO] [stdout]   Scenario: A card is moved from the graveyard to exile
[INFO] [stdout]    ✔  Given a creature is in Bob's graveyard
[INFO] [stdout]    ✔  When a spell or ability exiles that creature from the graveyard
[INFO] [stdout]    ✔  Then that creature leaves the graveyard
[INFO] [stdout]    ✔  And that creature enters Bob's exile zone
[INFO] [stdout]    ✔  And the game emits CardMovedZone to exile
[INFO] [stdout]   Scenario: A card cannot exist in exile and another zone simultaneously
[INFO] [stdout]    ✔  Given a creature is in Alice's exile zone
[INFO] [stdout]    ✔  Then that creature is not in Alice's battlefield
[INFO] [stdout]    ✔  And that creature is not in Alice's graveyard
[INFO] [stdout]    ✔  And that creature is not in Alice's hand
[INFO] [stdout]    ✔  And that creature is not in Alice's library
[INFO] [stdout] [Summary]
[INFO] [stdout] 1 feature
[INFO] [stdout] 3 scenarios (3 passed)
[INFO] [stdout] 15 steps (15 passed)
[INFO] [stderr]      Running tests/unit.rs (/opt/rustwide/target/debug/deps/unit-3b65e88516c16f1b)
[INFO] [stdout] 
[INFO] [stdout] running 426 tests
[INFO] [stdout] test application::choice_requests::choice_requests_hide_pending_surveil_private_cards_from_other_viewers ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_hide_private_spell_choice_requests_from_other_viewers ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_do_not_surface_illegal_hexproof_targets ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_modal_modes_for_supported_choose_one_spells ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_explicit_hand_choice_for_discard_spells ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_pending_optional_effect_decisions ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_cleanup_discard_as_pending_choice ... ok
[INFO] [stdout] test application::persistence_atomicity::play_land_does_not_mutate_the_in_memory_game_when_persistence_fails ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_pending_scry_for_supported_scry_spell ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_target_candidates_for_supported_targeted_spells ... ok
[INFO] [stdout] test application::legal_actions::legal_actions_hide_priority_holder_private_options_from_other_viewers ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_pending_surveil_for_supported_surveil_spell ... ok
[INFO] [stdout] test application::legal_actions::legal_actions_surface_priority_holder_options_in_first_main ... ok
[INFO] [stdout] test application::legal_actions::legal_actions_surface_cleanup_discard_when_hand_is_too_large ... ok
[INFO] [stdout] test application::public_command_result::declare_attackers_emits_triggered_ability_put_on_stack_for_supported_attack_triggers ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_orders_creature_sacrifice_death_before_zone_change ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_pending_hand_choice_for_loot_resolution ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_target_candidates_in_stable_public_order ... ok
[INFO] [stdout] test application::legal_actions::legal_actions_hide_cleanup_private_options_from_non_active_viewers ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_preserves_loot_effect_event_order ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_preserves_rummage_effect_event_order ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_surfaces_zone_move_for_sacrifice_activation_cost ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_surfaces_card_discarded_from_pass_priority_resolution ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_preserves_terminal_loot_draw_before_resolution_events ... ok
[INFO] [stdout] test application::legal_actions::legal_actions_do_not_offer_single_blocker_option_against_menace ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_surfaces_cleanup_discard_zone_change ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_returns_applied_status_events_and_next_snapshot ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_preserves_optional_effect_event_order ... ok
[INFO] [stdout] test application::public_event_log::game_service_public_event_log_promotes_recently_read_timeline_before_eviction ... ok
[INFO] [stdout] test application::public_event_log::game_service_public_event_log_reuses_cached_public_projection_across_reads ... ok
[INFO] [stdout] test application::public_event_log::public_event_log_redacts_hidden_opening_hand_and_draw_card_ids ... ok
[INFO] [stdout] test application::public_event_log::public_event_log_assigns_stable_sequences_to_raw_events ... ok
[INFO] [stdout] test application::public_event_log::game_service_public_event_log_returns_persisted_public_timeline ... ok
[INFO] [stdout] test application::session_loop::seeded_public_game_setup_does_not_persist_partial_start_when_opening_hands_fail ... ok
[INFO] [stdout] test application::public_game_view::game_view_projects_attached_creature_for_aura_permanents ... ok
[INFO] [stdout] test application::session_loop::seeded_public_rematch_reuses_setup_with_a_new_game_id ... ok
[INFO] [stdout] test application::public_game_view::game_view_projects_battlefield_cards_after_land_is_played ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_returns_rejected_status_and_preserves_follow_up_contract ... ok
[INFO] [stdout] test application::session_loop::seeded_public_game_setup_is_deterministic_for_the_same_seed ... ok
[INFO] [stdout] test application::public_event_log::game_service_public_event_log_evicts_oldest_cached_timelines ... ok
[INFO] [stdout] test combat::attack_and_combat_damage_triggers::attack_trigger_is_put_on_stack_when_creature_is_declared_as_attacker ... ok
[INFO] [stdout] test combat::attack_and_combat_damage_triggers::combat_damage_to_player_trigger_is_put_on_stack_after_damage_resolves ... ok
[INFO] [stdout] test application::legal_actions::legal_actions_do_not_offer_pacified_creature_as_blocker_option ... ok
[INFO] [stdout] test application::public_command_result::execute_public_command_surfaces_surveil_graveyard_move_before_resolution_close ... ok
[INFO] [stdout] test application::public_game_view::game_view_projects_public_state_without_hidden_hand_contents ... ok
[INFO] [stdout] test application::session_loop::concede_public_command_ends_the_game_with_conceded_reason ... ok
[INFO] [stdout] test combat::aura_restrictions::pacifism_style_restriction_is_removed_when_the_aura_leaves_battlefield ... ok
[INFO] [stdout] test combat::controller_anthem::creature_anthem_applies_to_itself_when_it_enters ... ok
[INFO] [stdout] test combat::controller_anthem::controller_anthem_bonus_is_removed_when_the_anthem_leaves_battlefield ... ok
[INFO] [stdout] test application::public_command_result::resolve_combat_damage_emits_effects_before_close_and_supported_damage_triggers ... ok
[INFO] [stdout] test combat::controller_anthem::controller_anthem_boosts_existing_controlled_creatures ... ok
[INFO] [stdout] test combat::controller_anthem::controller_anthem_boosts_creatures_that_enter_after_it ... ok
[INFO] [stdout] test combat::declare_blockers::declare_attackers_opens_priority_for_the_active_player ... ok
[INFO] [stdout] test application::choice_requests::choice_requests_surface_optional_secondary_target_choice_for_distributed_counter_spells ... ok
[INFO] [stdout] test application::public_command_result::resolve_combat_damage_surfaces_zone_moves_for_creatures_that_die_in_combat ... ok
[INFO] [stdout] test combat::declare_blockers::declare_blockers_fails_when_the_same_blocker_is_assigned_more_than_once ... ok
[INFO] [stdout] test combat::combat_subphases::combat_uses_explicit_subphases_in_order ... ok
[INFO] [stdout] test combat::blocking_legality::menace_requires_at_least_two_blockers ... ok
[INFO] [stdout] test combat::blocking_legality::test_non_flying_blocking_legality ... ok
[INFO] [stdout] test combat::blocking_legality::test_flying_blocking_legality ... ok
[INFO] [stdout] test combat::declare_blockers::resolve_combat_damage_fails_when_no_attackers_were_declared ... ok
[INFO] [stdout] test combat::declare_blockers::declare_blockers_fails_when_target_creature_is_not_attacking ... ok
[INFO] [stdout] test combat::defender::defender_creature_cannot_attack ... ok
[INFO] [stdout] test combat::aura_restrictions::pacifism_style_aura_prevents_the_enchanted_creature_from_attacking ... ok
[INFO] [stdout] test combat::aura_restrictions::pacifism_style_aura_prevents_the_enchanted_creature_from_blocking ... ok
[INFO] [stdout] test combat::haste::haste_creature_can_attack_on_the_turn_it_enters ... ok
[INFO] [stdout] test combat::blocking_legality::test_reach_blocking_legality ... ok
[INFO] [stdout] test combat::declare_blockers::declare_blockers_opens_priority_for_the_active_player ... ok
[INFO] [stdout] test combat::double_strike::blocked_attacker_does_not_become_unblocked_after_first_strike_kills_blocker ... ok
[INFO] [stdout] test combat::declare_blockers::resolve_combat_damage_opens_priority_for_the_active_player ... ok
[INFO] [stdout] test combat::permanent_type::test_casting_permission_profile_for_card_type_matches_supported_model ... ok
[INFO] [stdout] test combat::permanent_type::test_is_permanent_returns_false_for_non_permanent_types ... ok
[INFO] [stdout] test combat::declare_blockers::declare_blockers_allows_multiple_blockers_against_the_same_attacker_in_declared_order ... ok
[INFO] [stdout] test combat::permanent_type::test_is_permanent_returns_true_for_permanent_types ... ok
[INFO] [stdout] test infrastructure::event_bus_multiple_handlers ... ok
[INFO] [stdout] test combat::indestructible::lethal_combat_damage_does_not_destroy_indestructible_creature ... ok
[INFO] [stdout] test combat::deathtouch::zero_combat_damage_from_deathtouch_is_not_lethal ... ok
[INFO] [stdout] test combat::damage_assignment_order::attacker_assigns_damage_to_multiple_blockers_in_declared_order ... ok
[INFO] [stdout] test combat::double_strike::unblocked_double_strike_attacker_deals_damage_in_both_passes ... ok
[INFO] [stdout] test infrastructure::event_bus_publishes_to_handler ... ok
[INFO] [stdout] test infrastructure::event_store_append_and_retrieve ... ok
[INFO] [stdout] test combat::vigilance::non_vigilance_creature_still_taps_when_it_attacks ... ok
[INFO] [stdout] test combat::lifelink::unblocked_lifelink_attacker_gains_life_for_controller ... ok
[INFO] [stdout] test combat::vigilance::vigilance_creature_does_not_tap_when_it_attacks ... ok
[INFO] [stdout] test combat::trample::trample_assigns_excess_damage_to_the_defending_player ... ok
[INFO] [stdout] test combat::damage_assignment_order::trample_uses_declared_blocker_order_before_assigning_excess_to_player ... ok
[INFO] [stdout] test combat::deathtouch::deathtouch_trample_assigns_one_damage_as_lethal_before_excess_to_player ... ok
[INFO] [stdout] test combat::deathtouch::one_combat_damage_from_deathtouch_is_lethal ... ok
[INFO] [stdout] test combat::lifelink::lifelink_blocker_gains_life_when_dealing_combat_damage ... ok
[INFO] [stdout] test infrastructure::event_store_empty_for_unknown_aggregate ... ok
[INFO] [stdout] test infrastructure::event_store_merges_appended_events_after_a_cached_read ... ok
[INFO] [stdout] test infrastructure::integration_event_store_and_bus ... ok
[INFO] [stdout] test infrastructure::projection_logs_creature_died_events ... ok
[INFO] [stdout] test infrastructure::projection_logs_events ... ok
[INFO] [stdout] test infrastructure::projection_logs_multiple_events ... ok
[INFO] [stdout] test infrastructure::projection_logs_reuse_cached_snapshot_across_reads ... ok
[INFO] [stdout] test infrastructure::projection_logs_game_ended_events ... ok
[INFO] [stdout] test infrastructure::projection_logs_card_discarded_events ... ok
[INFO] [stdout] test infrastructure::projection_logs_drawn_game_end_events ... ok
[INFO] [stdout] test combat::double_strike::double_strike_creature_removed_in_first_pass_does_not_deal_second_pass_damage ... ok
[INFO] [stdout] test combat::first_strike::first_strike_attacker_kills_blocker_before_normal_retaliation ... ok
[INFO] [stdout] test application::public_event_log::game_service_public_event_log_evicts_large_cached_timelines_by_footprint ... ok
[INFO] [stdout] test lifecycle::deal_opening_hands::deal_opening_hands_fails_when_a_player_library_is_duplicated ... ok
[INFO] [stdout] test lifecycle::deal_opening_hands::deal_opening_hands_fails_when_a_player_library_is_missing ... ok
[INFO] [stdout] test lifecycle::deal_opening_hands::deal_opening_hands_uses_explicit_non_creature_library_input ... ok
[INFO] [stdout] test lifecycle::concede::concede_ends_an_active_game_even_with_priority_open ... ok
[INFO] [stdout] test lifecycle::mulligan::mulligan_can_be_taken_multiple_times_in_setup ... ok
[INFO] [stdout] test lifecycle::deal_opening_hands::deal_opening_hands_fails_when_not_enough_cards ... ok
[INFO] [stdout] test lifecycle::start_game::start_game_rejects_duplicate_players ... ok
[INFO] [stdout] test lifecycle::mulligan::mulligan_fails_not_enough_cards ... ok
[INFO] [stdout] test lifecycle::mulligan::mulligan_fails_not_setup_phase ... ok
[INFO] [stdout] test lifecycle::mulligan::mulligan_succeeds ... ok
[INFO] [stdout] test lifecycle::start_game::start_game_creates_valid_game ... ok
[INFO] [stdout] test lifecycle::start_game::start_game_rejects_too_many_players ... ok
[INFO] [stdout] test lifecycle::start_game::start_game_rejects_single_player ... ok
[INFO] [stdout] test regressions::domain_semantics::cast_land_keeps_the_card_in_hand ... ok
[INFO] [stdout] test lifecycle::mulligan::mulligan_hand_contains_exactly_seven_cards_after_mulligan ... ok
[INFO] [stdout] test regressions::domain_semantics::instant_spells_resolve_to_graveyard_not_battlefield ... ok
[INFO] [stdout] test lifecycle::deal_opening_hands::deal_opening_hands_rejects_library_cards_outside_the_curated_profile_catalog ... ok
[INFO] [stdout] test lifecycle::deal_opening_hands::deal_opening_hands_moves_cards_to_hand ... ok
[INFO] [stdout] test lifecycle::zones::test_exile_from_graveyard ... ok
[INFO] [stdout] test lifecycle::deal_opening_hands::deal_opening_hands_emits_event_per_player ... ok
[INFO] [stdout] test regressions::domain_semantics::creature_destruction_emits_one_event_per_destroyed_creature ... ok
[INFO] [stdout] test resource_actions::cast_spell::cast_spell_fails_when_card_not_in_hand ... ok
[INFO] [stdout] test resource_actions::cast_spell::cast_instant_puts_the_spell_on_the_stack_before_resolution ... ok
[INFO] [stdout] test resource_actions::cast_spell::cast_spell_fails_for_land_card ... ok
[INFO] [stdout] test resource_actions::cast_spell::cast_spell_rejected_land_card_stays_in_hand ... ok
[INFO] [stdout] test regressions::domain_semantics::combat_damage_marks_surviving_creatures_and_destroys_lethally_damaged_ones ... ok
[INFO] [stdout] test lifecycle::zones::test_exile_from_battlefield ... ok
[INFO] [stdout] test resource_actions::cast_spell::cast_spell_succeeds_with_sufficient_mana ... ok
[INFO] [stdout] test resource_actions::cast_spell::casting_a_double_green_instant_succeeds_with_two_green_mana ... ok
[INFO] [stdout] test resource_actions::cast_spell::casting_player_keeps_priority_after_casting_a_spell ... ok
[INFO] [stdout] test resource_actions::cast_spell::cast_spell_fails_when_not_player_turn ... ok
[INFO] [stdout] test regressions::domain_semantics::unblocked_combat_damage_ends_the_game_when_it_reduces_a_player_to_zero_life ... ok
[INFO] [stdout] test resource_actions::cast_spell::casting_a_double_green_instant_fails_with_only_one_green_mana ... ok
[INFO] [stdout] test resource_actions::cast_spell::opponent_can_cast_an_instant_response_after_the_caster_passes_priority ... ok
[INFO] [stdout] test resource_actions::cast_spell::casting_a_green_instant_succeeds_with_green_mana ... ok
[INFO] [stdout] test resource_actions::cast_spell::passing_priority_twice_resolves_an_instant_from_stack_to_graveyard ... ok
[INFO] [stdout] test resource_actions::cast_spell::casting_a_mixed_green_instant_fails_without_the_required_green_symbol ... ok
[INFO] [stdout] test resource_actions::cast_spell::resolving_a_creature_spell_moves_card_to_battlefield ... ok
[INFO] [stdout] test resource_actions::cast_spell::opponent_cannot_cast_a_creature_as_a_response_after_the_caster_passes ... ok
[INFO] [stdout] test resource_actions::cast_spell::opponent_can_tap_a_land_and_pay_for_an_instant_response_in_the_same_window ... ok
[INFO] [stdout] test resource_actions::cast_spell::casting_a_green_instant_fails_with_only_red_mana ... ok
[INFO] [stdout] test resource_actions::cast_spell::resolving_an_artifact_spell_moves_card_to_battlefield ... ok
[INFO] [stdout] test resource_actions::cast_spell::cast_spell_fails_with_insufficient_mana ... ok
[INFO] [stdout] test resource_actions::cast_spell::casting_a_generic_spell_succeeds_with_colored_mana ... ok
[INFO] [stdout] test lifecycle::deal_opening_hands::deal_opening_hands_fails_when_hands_were_already_dealt ... ok
[INFO] [stdout] test resource_actions::cast_spell::resolving_a_spell_reviews_pending_state_based_actions_for_existing_zero_toughness_creatures ... ok
[INFO] [stdout] test resource_actions::cast_spell::zero_toughness_creature_dies_after_its_spell_resolves ... ok
[INFO] [stdout] test resource_actions::cast_spell::casting_a_mixed_green_instant_succeeds_with_green_and_generic_mana ... ok
[INFO] [stdout] test resource_actions::play_land::play_land_emits_event ... ok
[INFO] [stdout] test resource_actions::play_land::play_land_fails_when_land_already_played_this_turn ... ok
[INFO] [stdout] test regressions::domain_semantics::untap_only_updates_the_active_players_board_state ... ok
[INFO] [stdout] test resource_actions::player_life::adjust_life_reviews_pending_state_based_actions_for_existing_lethal_damage ... ok
[INFO] [stdout] test resource_actions::player_life::adjust_life_cannot_go_below_zero_and_ends_the_game ... ok
[INFO] [stdout] test resource_actions::player_life::adjust_life_fails_for_unknown_target_player ... ok
[INFO] [stdout] test resource_actions::play_land::play_land_fails_while_priority_window_is_open ... ok
[INFO] [stdout] test resource_actions::player_life::gameplay_actions_fail_after_zero_life_game_end ... ok
[INFO] [stdout] test resource_actions::play_land::play_land_fails_when_not_player_turn ... ok
[INFO] [stdout] test resource_actions::tap_land::advance_turn_clears_mana_pools ... ok
[INFO] [stdout] test resource_actions::player_life::adjust_life_fails_for_unknown_player ... ok
[INFO] [stdout] test resource_actions::player_life::adjust_player_life_effect_can_target_another_player ... ok
[INFO] [stdout] test resource_actions::play_land::play_land_fails_when_card_is_not_a_land ... ok
[INFO] [stdout] test resource_actions::play_land::play_land_fails_when_card_not_in_hand ... ok
[INFO] [stdout] test resource_actions::play_land::play_land_rejected_non_land_card_stays_in_hand ... ok
[INFO] [stdout] test resource_actions::tap_land::players_start_with_zero_mana ... ok
[INFO] [stdout] test resource_actions::play_land::play_land_moves_card_from_hand_to_battlefield ... ok
[INFO] [stdout] test resource_actions::tap_land::lands_expose_a_minimal_activated_mana_ability_profile ... ok
[INFO] [stdout] test resource_actions::player_life::adjust_life_deltas_player_life ... ok
[INFO] [stdout] test resource_actions::player_life::adjust_player_life_effect_can_gain_life_for_another_player ... ok
[INFO] [stdout] test resource_actions::player_life::adjust_life_gains_life ... ok
[INFO] [stdout] test resource_actions::player_life::players_start_with_20_life ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_adds_mana ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_fails_for_untapped_land ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_fails_for_unknown_card ... ok
[INFO] [stdout] test resource_actions::tap_land::tapping_a_plains_adds_white_mana_to_the_pool ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::activated_ability_requires_the_current_priority_holder ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::activated_ability_resolution_changes_life ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_fails_when_not_players_turn ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::activated_ability_can_be_used_as_a_response_when_you_hold_priority ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::cards_without_supported_activated_ability_are_rejected ... ok
[INFO] [stdout] test resource_actions::tap_land::tapping_a_swamp_adds_black_mana_to_the_pool ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::activated_ability_uses_main_phase_priority_window_and_the_stack ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_succeeds_in_upkeep_when_the_active_player_holds_priority ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_fails_in_upkeep_after_the_active_player_passes_priority ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_fails_while_the_stack_is_not_empty ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_fails_for_non_land_card ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::loyalty_minus_ability_requires_enough_loyalty ... ok
[INFO] [stdout] test resource_actions::tap_land::tapping_an_island_adds_blue_mana_to_the_pool ... ok
[INFO] [stdout] test resource_actions::tap_land::tapping_a_forest_adds_green_mana_to_the_pool ... ok
[INFO] [stdout] test resource_actions::tap_land::tap_land_succeeds_in_beginning_of_combat_when_the_active_player_holds_priority ... ok
[INFO] [stdout] test resource_actions::tap_land::non_active_player_can_tap_a_land_while_holding_priority_on_an_open_stack ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::loyalty_ability_cannot_be_activated_twice_in_the_same_turn ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::loyalty_minus_ability_rejects_insufficient_loyalty ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::sacrificing_the_source_happens_as_an_activation_cost ... ok
[INFO] [stdout] test stack_priority::cast_enchantment_in_main_window::active_player_can_cast_and_resolve_an_enchantment_in_first_main ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::loyalty_plus_ability_uses_the_stack_and_adds_loyalty_on_activation ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::sacrificed_source_is_already_gone_before_the_ability_resolves ... ok
[INFO] [stdout] test stack_priority::cast_enchantment_in_main_window::active_player_can_cast_and_resolve_an_enchantment_in_second_main ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::mana_costed_activated_ability_rejects_unpayable_costs_without_tapping ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::mana_costed_activated_ability_spends_mana_before_entering_the_stack ... ok
[INFO] [stdout] test stack_priority::cast_creature_in_second_main_window::active_player_can_cast_and_resolve_a_creature_in_second_main ... ok
[INFO] [stdout] test stack_priority::cast_artifact_in_main_window::active_player_can_cast_and_resolve_an_artifact_in_second_main ... ok
[INFO] [stdout] test stack_priority::cast_artifact_in_main_window::active_player_can_cast_and_resolve_an_artifact_in_first_main ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::targeted_tap_ability_requires_a_target_and_resolves_through_the_stack ... ok
[INFO] [stdout] test resource_actions::tap_land::tapping_a_land_for_mana_does_not_use_the_stack_or_change_priority ... ok
[INFO] [stdout] test stack_priority::activate_nonmana_ability_in_priority_window::tapped_source_cannot_activate_again ... ok
[INFO] [stdout] test stack_priority::cast_flash_planeswalker_in_beginning_of_combat_window::active_player_can_cast_and_resolve_a_flash_planeswalker_at_beginning_of_combat ... ok
[INFO] [stdout] test stack_priority::cast_flash_artifact_in_beginning_of_combat_window::active_player_can_cast_and_resolve_a_flash_artifact_at_beginning_of_combat ... ok
[INFO] [stdout] test stack_priority::cast_flash_enchantment_after_combat_damage::active_player_can_cast_a_flash_enchantment_after_combat_damage_resolves ... ok
[INFO] [stdout] test stack_priority::cast_flash_creature_in_beginning_of_combat_window::active_player_can_cast_a_flash_creature_at_beginning_of_combat ... ok
[INFO] [stdout] test stack_priority::cast_flash_artifact_after_blockers::active_player_can_cast_a_flash_artifact_after_blockers_are_declared ... ok
[INFO] [stdout] test stack_priority::cast_flash_creature_after_combat_damage::active_player_can_cast_a_flash_creature_after_combat_damage_resolves ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_artifact_in_upkeep_window::active_player_can_cast_and_resolve_an_own_turn_priority_artifact_in_upkeep ... ok
[INFO] [stdout] test stack_priority::cast_instant_in_first_main_window::active_player_can_cast_and_resolve_an_instant_in_first_main ... ok
[INFO] [stdout] test stack_priority::cast_flash_artifact_after_combat_damage::active_player_can_cast_a_flash_artifact_after_combat_damage_resolves ... ok
[INFO] [stdout] test stack_priority::cast_flash_creature_in_upkeep_window::active_player_can_cast_and_resolve_a_flash_creature_in_upkeep ... ok
[INFO] [stdout] test stack_priority::cast_flash_enchantment_in_beginning_of_combat_window::active_player_can_cast_and_resolve_a_flash_enchantment_at_beginning_of_combat ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_enchantment_in_beginning_of_combat_window::active_player_can_cast_and_resolve_an_own_turn_priority_enchantment_at_beginning_of_combat ... ok
[INFO] [stdout] test stack_priority::cast_planeswalker_in_main_window::active_player_can_cast_and_resolve_a_planeswalker_in_first_main ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_enchantment_in_upkeep_window::active_player_can_cast_and_resolve_an_own_turn_priority_enchantment_in_upkeep ... ok
[INFO] [stdout] test stack_priority::cast_flash_creature_after_attackers::active_player_can_cast_a_flash_creature_after_attackers_are_declared ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_artifact_in_beginning_of_combat_window::active_player_can_cast_and_resolve_an_own_turn_priority_artifact_at_beginning_of_combat ... ok
[INFO] [stdout] test stack_priority::cast_planeswalker_in_main_window::active_player_can_cast_and_resolve_a_planeswalker_in_second_main ... ok
[INFO] [stdout] test stack_priority::cast_flash_enchantment_after_blockers::active_player_can_cast_a_flash_enchantment_after_blockers_are_declared ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_in_draw_window::active_player_can_cast_a_second_instant_before_passing_in_draw ... ok
[INFO] [stdout] test stack_priority::cast_flash_creature_after_blockers::active_player_can_cast_a_flash_creature_after_blockers_are_declared ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_in_upkeep_window::active_player_can_cast_a_second_instant_before_passing_in_upkeep ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_in_end_step_window::active_player_can_cast_a_second_instant_before_passing_in_end_step ... ok
[INFO] [stdout] test stack_priority::cast_sorcery_in_main_window::active_player_can_cast_a_sorcery_while_holding_an_empty_first_main_priority_window ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_in_first_main_window::active_player_can_cast_a_second_instant_before_passing_in_first_main ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_in_second_main_window::active_player_can_cast_a_second_instant_before_passing_in_second_main ... ok
[INFO] [stdout] test stack_priority::cast_flash_planeswalker_after_combat_damage::active_player_can_cast_a_flash_planeswalker_after_combat_damage_resolves ... ok
[INFO] [stdout] test stack_priority::cast_sorcery_in_main_window::active_player_can_cast_and_resolve_a_sorcery_in_first_main ... ok
[INFO] [stdout] test stack_priority::cast_targeted_controlled_attacking_creature_spell_after_attackers::active_player_can_cast_a_controlled_attacking_creature_spell_after_attackers ... ok
[INFO] [stdout] test stack_priority::cast_flash_planeswalker_after_blockers::active_player_can_cast_a_flash_planeswalker_after_blockers_are_declared ... ok
[INFO] [stdout] test stack_priority::cast_sorcery_in_main_window::active_player_can_cast_and_resolve_a_sorcery_in_second_main ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_enchantment_after_attackers::active_player_can_cast_and_resolve_an_own_turn_priority_enchantment_after_attackers ... ok
[INFO] [stdout] test stack_priority::cast_targeted_attacking_creature_spell_after_attackers::active_player_can_cast_an_attacking_creature_spell_after_attackers ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_artifact_after_combat_damage::active_player_can_cast_and_resolve_an_own_turn_priority_artifact_after_combat_damage ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_enchantment_after_blockers::active_player_can_cast_and_resolve_an_own_turn_priority_enchantment_after_blockers ... ok
[INFO] [stdout] test stack_priority::counter_placement_effects::distributed_counter_spell_can_put_both_counters_on_one_target_creature ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_artifact_after_attackers::active_player_can_cast_and_resolve_an_own_turn_priority_artifact_after_attackers ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_in_beginning_of_combat_window::active_player_can_cast_a_second_instant_before_passing_at_beginning_of_combat ... ok
[INFO] [stdout] test stack_priority::cast_targeted_opponents_blocking_creature_spell_after_blockers::active_player_can_cast_an_opponents_blocking_creature_spell_after_blockers ... ok
[INFO] [stdout] test stack_priority::counter_placement_effects::distributed_counter_spell_can_put_one_counter_on_each_of_two_targets ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_after_attackers::active_player_can_cast_a_second_instant_before_passing_after_attackers ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_after_blockers::active_player_can_cast_a_second_instant_before_passing_after_blockers ... ok
[INFO] [stdout] test stack_priority::cast_targeted_opponents_attacking_creature_spell_after_attackers::non_active_player_can_cast_an_opponents_attacking_creature_spell_after_attackers ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_artifact_after_blockers::active_player_can_cast_and_resolve_an_own_turn_priority_artifact_after_blockers ... ok
[INFO] [stdout] test stack_priority::cast_own_turn_priority_enchantment_after_combat_damage::active_player_can_cast_and_resolve_an_own_turn_priority_enchantment_after_combat_damage ... ok
[INFO] [stdout] test stack_priority::counter_placement_effects::distributed_counter_spell_only_applies_one_counter_when_secondary_target_is_gone_on_resolution ... ok
[INFO] [stdout] test stack_priority::cast_second_instant_after_combat_damage::active_player_can_cast_a_second_instant_before_passing_after_combat_damage ... ok
[INFO] [stdout] test stack_priority::cast_targeted_blocking_creature_spell_after_blockers::active_player_can_cast_a_blocking_creature_spell_after_blockers ... ok
[INFO] [stdout] test stack_priority::cast_targeted_controlled_blocking_creature_spell_after_blockers::defending_player_can_cast_a_controlled_blocking_creature_spell_after_blockers ... ok
[INFO] [stdout] test stack_priority::create_vanilla_creature_token::resolving_supported_token_spell_can_create_multiple_vanilla_creatures ... ok
[INFO] [stdout] test stack_priority::counter_placement_effects::distributed_counter_spell_rejects_reusing_the_primary_target_as_secondary_choice ... ok
[INFO] [stdout] test stack_priority::counter_placement_effects::supported_ability_can_put_a_plus_one_counter_on_its_source_creature ... ok
[INFO] [stdout] test stack_priority::counter_placement_effects::supported_spell_can_put_a_plus_one_counter_on_target_creature ... ok
[INFO] [stdout] test stack_priority::graveyard_recursion::supported_reanimation_rejects_targeting_a_creature_card_in_an_opponents_graveyard ... ok
[INFO] [stdout] test stack_priority::graveyard_recursion::explicit_profile_allows_casting_a_supported_spell_from_its_own_graveyard ... ok
[INFO] [stdout] test stack_priority::graveyard_recursion::supported_mill_effects_move_as_many_cards_as_possible_from_a_short_library ... ok
[INFO] [stdout] test stack_priority::graveyard_recursion::supported_spell_can_reanimate_target_creature_card_and_fire_etb ... ok
[INFO] [stdout] test stack_priority::create_vanilla_creature_token::resolving_supported_token_spell_can_create_one_keyworded_creature_token ... ok
[INFO] [stdout] test stack_priority::graveyard_recursion::explicit_profile_can_exile_a_supported_spell_after_casting_it_from_its_own_graveyard ... ok
[INFO] [stdout] test stack_priority::loot_and_rummage::loot_pending_choice_emits_explicit_draw_event ... ok
[INFO] [stdout] test stack_priority::create_vanilla_creature_token::resolving_supported_token_spell_creates_one_vanilla_creature_on_battlefield ... ok
[INFO] [stdout] test stack_priority::loot_and_rummage::loot_spell_discards_the_selected_card_after_the_draw ... ok
[INFO] [stdout] test stack_priority::enter_the_battlefield_trigger_foundation::permanent_entry_enqueues_supported_etb_trigger_on_the_stack ... ok
[INFO] [stdout] test stack_priority::enter_the_battlefield_trigger_foundation::etb_trigger_resolves_through_the_existing_stack_corridor ... ok
[INFO] [stdout] test stack_priority::dies_trigger_foundation::exiling_a_creature_does_not_enqueue_a_dies_trigger ... ok
[INFO] [stdout] test stack_priority::loot_and_rummage::loot_spell_draws_then_prompts_for_discard ... ok
[INFO] [stdout] test stack_priority::dies_trigger_foundation::supported_creature_death_enqueues_a_dies_trigger ... ok
[INFO] [stdout] test stack_priority::graveyard_recursion::supported_spell_can_return_target_instant_card_from_graveyard_to_hand ... ok
[INFO] [stdout] test stack_priority::loot_and_rummage::loot_terminal_draw_failure_still_resolves_and_clears_the_stack ... ok
[INFO] [stdout] test stack_priority::loot_and_rummage::pending_hand_choice_rejects_card_not_in_hand ... ok
[INFO] [stdout] test stack_priority::loot_and_rummage::only_controller_can_answer_pending_hand_choice ... ok
[INFO] [stdout] test stack_priority::graveyard_recursion::supported_mill_effects_move_cards_from_library_to_graveyard ... ok
[INFO] [stdout] test stack_priority::loot_and_rummage::rummage_resolution_emits_explicit_draw_event ... ok
[INFO] [stdout] test stack_priority::graveyard_recursion::supported_spell_can_return_target_creature_card_from_graveyard_to_hand ... ok
[INFO] [stdout] test stack_priority::loot_and_rummage::rummage_spell_discards_selected_card_before_drawing ... ok
[INFO] [stdout] test stack_priority::optional_may_triggers::may_trigger_surfaces_a_pending_optional_choice_at_resolution_time ... ok
[INFO] [stdout] test stack_priority::reject_own_turn_priority_enchantment_response::non_active_player_cannot_cast_an_own_turn_priority_enchantment_as_a_response ... ok
[INFO] [stdout] test stack_priority::optional_may_triggers::may_trigger_does_nothing_when_controller_answers_no ... ok
[INFO] [stdout] test stack_priority::reject_planeswalker_response::opponent_cannot_cast_a_planeswalker_as_a_response_after_the_caster_passes ... ok
[INFO] [stdout] test stack_priority::reject_own_turn_priority_artifact_response::non_active_player_cannot_cast_an_own_turn_priority_artifact_as_a_response ... ok
[INFO] [stdout] test stack_priority::reject_sorcery_response::opponent_cannot_cast_a_sorcery_as_a_response_after_the_caster_passes ... ok
[INFO] [stdout] test stack_priority::respond_with_flash_creature_spell::opponent_can_respond_to_an_existing_stack_with_a_flash_creature ... ok
[INFO] [stdout] test stack_priority::optional_may_triggers::only_the_optional_effect_controller_can_answer_the_pending_choice ... ok
[INFO] [stdout] test stack_priority::reject_non_actor_relative_combat_targets::controlled_attacking_creature_spell_rejects_an_opponents_attacker ... ok
[INFO] [stdout] test stack_priority::nonlethal_opponents_attacking_target_damage::opponents_attacking_creature_spell_marks_nonlethal_damage_and_leaves_the_attacker_in_combat ... ok
[INFO] [stdout] test stack_priority::nonlethal_opponents_blocking_target_damage::opponents_blocking_creature_spell_marks_nonlethal_damage_and_leaves_the_blocker_in_combat ... ok
[INFO] [stdout] test stack_priority::optional_may_triggers::may_trigger_applies_its_effect_when_controller_answers_yes ... ok
[INFO] [stdout] test stack_priority::nonlethal_blocking_target_damage::targeted_blocking_creature_spell_marks_nonlethal_damage_and_leaves_the_blocker_in_combat ... ok
[INFO] [stdout] test stack_priority::reject_non_actor_relative_combat_targets::controlled_blocking_creature_spell_rejects_an_opponents_attacker ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_first_main_window::responding_player_can_cast_a_second_instant_before_passing_in_first_main ... ok
[INFO] [stdout] test stack_priority::nonlethal_controlled_attacking_target_damage::controlled_attacking_creature_spell_marks_nonlethal_damage_and_leaves_the_attacker_in_combat ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_end_step_window::responding_player_can_cast_a_second_instant_before_passing_in_end_step ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_beginning_of_combat_window::responding_player_can_cast_a_second_instant_before_passing_at_beginning_of_combat ... ok
[INFO] [stdout] test stack_priority::resolve_targeted_blocking_creature_damage::targeted_blocking_creature_spell_can_destroy_a_blocker_after_blockers ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_combat_damage_window::responding_player_can_cast_a_second_instant_before_passing_in_combat_damage ... ok
[INFO] [stdout] test stack_priority::nonlethal_controlled_blocking_target_damage::controlled_blocking_creature_spell_marks_nonlethal_damage_and_leaves_the_blocker_in_combat ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_draw_window::responding_player_can_cast_a_second_instant_before_passing_in_draw ... ok
[INFO] [stdout] test stack_priority::scry::scry_move_to_bottom_changes_next_draw ... ok
[INFO] [stdout] test stack_priority::scry::scry_spell_opens_pending_scry_request ... ok
[INFO] [stdout] test stack_priority::sorcery_speed_spells_require_active_player_priority::non_active_player_cannot_cast_sorcery_speed_spells_in_an_empty_main_phase_window ... ok
[INFO] [stdout] test stack_priority::scry::scry_keep_on_top_preserves_next_draw ... ok
[INFO] [stdout] test stack_priority::surveil::surveil_spell_opens_pending_surveil_request ... ok
[INFO] [stdout] test stack_priority::surveil::surveil_move_to_graveyard_changes_next_draw_and_fills_graveyard ... ok
[INFO] [stdout] test stack_priority::surveil::surveil_keep_on_top_preserves_next_draw ... ok
[INFO] [stdout] test stack_priority::reject_non_blocking_creature_for_block_only_spell::targeted_blocking_creature_spell_rejects_a_non_blocking_creature_when_cast ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_end_of_combat_window::responding_player_can_cast_a_second_instant_before_passing_in_end_of_combat ... ok
[INFO] [stdout] test stack_priority::reject_non_actor_relative_combat_targets::opponents_blocking_creature_spell_rejects_the_casters_own_blocker ... ok
[INFO] [stdout] test stack_priority::reject_non_actor_relative_combat_targets::opponents_attacking_creature_spell_rejects_the_casters_own_blocker ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_upkeep_window::responding_player_can_cast_a_second_instant_before_passing_in_upkeep ... ok
[INFO] [stdout] test stack_priority::target_blocking_creature_spell_foundation::targeted_blocking_creature_spell_rejects_a_player_target_when_cast ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_second_main_window::responding_player_can_cast_a_second_instant_before_passing_in_second_main ... ok
[INFO] [stdout] test stack_priority::stack_foundation::start_game_initializes_empty_stack_and_closed_priority_window ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_spell::responding_player_can_cast_a_second_instant_before_passing_on_existing_stack ... ok
[INFO] [stdout] test stack_priority::targeted_spells::bounce_spell_rejects_non_battlefield_target_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::destroy_artifact_or_enchantment_spell_rejects_creature_target ... ok
[INFO] [stdout] test stack_priority::targeted_spells::creature_aura_goes_to_graveyard_if_target_is_missing_on_resolution ... ok
[INFO] [stdout] test stack_priority::targeted_spells::destroy_target_creature_spell_can_destroy_a_creature_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::creature_aura_requires_a_target_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::destroy_artifact_or_enchantment_spell_destroys_target_artifact ... ok
[INFO] [stdout] test stack_priority::targeted_spells::destroy_artifact_or_enchantment_spell_destroys_target_enchantment ... ok
[INFO] [stdout] test stack_priority::respond_with_second_instant_in_declare_blockers_window::responding_player_can_cast_a_second_instant_before_passing_in_declare_blockers ... ok
[INFO] [stdout] test stack_priority::targeted_spells::counterspell_rejects_non_stack_targets_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::creature_aura_is_put_into_graveyard_when_enchanted_creature_dies ... ok
[INFO] [stdout] test stack_priority::respond_with_flash_artifact_spell::opponent_can_respond_to_an_existing_stack_with_a_flash_artifact ... ok
[INFO] [stdout] test stack_priority::respond_with_flash_enchantment_spell::opponent_can_respond_to_an_existing_stack_with_a_flash_enchantment ... ok
[INFO] [stdout] test stack_priority::respond_with_flash_planeswalker_spell::opponent_can_respond_to_an_existing_stack_with_a_flash_planeswalker ... ok
[INFO] [stdout] test stack_priority::targeted_spells::counterspell_counters_target_spell_on_the_stack ... ok
[INFO] [stdout] test stack_priority::targeted_spells::bounce_spell_returns_target_permanent_to_its_owners_hand ... ok
[INFO] [stdout] test stack_priority::targeted_spells::destroy_target_creature_does_not_destroy_indestructible_creature ... ok
[INFO] [stdout] test stack_priority::targeted_spells::discard_spell_rejects_a_chosen_card_not_in_the_target_players_hand ... ok
[INFO] [stdout] test stack_priority::targeted_spells::discard_spell_forces_target_player_to_discard_the_chosen_card ... ok
[INFO] [stdout] test stack_priority::targeted_spells::modal_choose_one_spell_can_gain_life_to_the_target_player ... ok
[INFO] [stdout] test stack_priority::targeted_spells::lower_artifact_removal_does_nothing_if_target_is_already_gone ... ok
[INFO] [stdout] test stack_priority::targeted_spells::modal_choose_one_spell_requires_a_selected_mode_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::exile_target_graveyard_card_spell_rejects_a_missing_graveyard_target_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::stat_boost_aura_increases_enchanted_creature_stats_while_attached ... ok
[INFO] [stdout] test stack_priority::targeted_spells::modal_choose_one_spell_can_make_the_target_player_lose_life ... ok
[INFO] [stdout] test stack_priority::targeted_spells::discard_spell_does_nothing_if_the_chosen_card_leaves_hand_before_resolution ... ok
[INFO] [stdout] test stack_priority::targeted_spells::destroy_target_creature_spell_does_not_apply_if_the_target_is_gone_on_resolution ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_any_player_spell_can_target_the_caster_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::tap_target_creature_spell_does_not_apply_if_target_is_gone_on_resolution ... ok
[INFO] [stdout] test stack_priority::targeted_spells::exile_target_graveyard_card_spell_does_not_apply_if_the_target_is_gone_on_resolution ... ok
[INFO] [stdout] test stack_priority::targeted_spells::pump_target_creature_spell_applies_temporary_stats_until_end_of_turn ... ok
[INFO] [stdout] test stack_priority::targeted_spells::lower_counterspell_does_nothing_if_target_spell_is_already_gone ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_attacking_creature_spell_can_destroy_an_attacker_after_attackers ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_attacking_creature_spell_rejects_a_player_target_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::exile_target_creature_spell_can_exile_a_creature_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::stat_boost_aura_bonus_is_removed_when_the_aura_leaves_battlefield ... ok
[INFO] [stdout] test stack_priority::targeted_spells::lower_bounce_spell_does_nothing_if_target_permanent_is_already_gone ... ok
[INFO] [stdout] test stack_priority::targeted_spells::cannot_block_target_creature_spell_prevents_blocking_for_the_rest_of_turn ... ok
[INFO] [stdout] test stack_priority::targeted_spells::tap_target_creature_spell_taps_the_target_creature_on_resolution ... ok
[INFO] [stdout] test stack_priority::targeted_spells::exile_target_creature_spell_does_not_apply_if_the_target_is_gone_on_resolution ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_attacking_creature_spell_marks_nonlethal_damage_and_leaves_the_attacker_in_combat ... ok
[INFO] [stdout] test stack_priority::targeted_spells::pump_target_creature_spell_changes_combat_damage_this_turn ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_instant_deals_damage_to_target_player_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_gain_life_spell_increases_the_targets_life_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_instant_deals_damage_to_target_creature_and_state_based_actions_destroy_it ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_instant_requires_a_target_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_instant_rejects_invalid_creature_target_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_instant_rejects_unknown_player_target_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_attacking_creature_spell_rejects_a_non_attacking_creature_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::exile_target_graveyard_card_spell_can_exile_a_card_from_a_graveyard_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_opponent_spell_rejects_the_caster_as_target_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_lose_life_spell_can_end_the_game ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_lose_life_spell_reduces_the_targets_life_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_opponents_creature_spell_rejects_a_controlled_creature_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_opponents_creature_spell_can_target_the_opponents_creature_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::untap_target_creature_spell_is_a_no_op_for_an_untapped_target ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_controlled_creature_spell_rejects_an_opponents_creature_when_cast ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_opponent_spell_can_target_the_opponent_when_it_resolves ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_instant_does_not_apply_if_its_only_creature_target_is_gone_on_resolution ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_emits_event ... ok
[INFO] [stdout] test stack_priority::token_cleanup::token_that_is_bounced_does_not_persist_in_hand ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_opens_priority_when_entering_end_step ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_spell_can_target_own_hexproof_creature ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_player_damage_can_end_the_game ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_opens_priority_when_entering_draw ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_ends_the_game_when_the_active_player_cannot_draw ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_opens_priority_when_entering_combat ... ok
[INFO] [stdout] test stack_priority::token_cleanup::token_that_dies_does_not_persist_in_graveyard ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_player_spell_rejects_a_creature_target_when_cast ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_fails_while_priority_window_is_open ... ok
[INFO] [stdout] test stack_priority::targeted_spells::untap_target_creature_spell_untaps_the_target_creature_on_resolution ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_changes_active_player ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_opens_priority_when_entering_first_main ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_opens_priority_when_entering_upkeep ... ok
[INFO] [stdout] test turn_flow::discard_for_cleanup::discard_for_cleanup_fails_when_cleanup_discard_is_not_required ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_fails_outside_main_phases ... ok
[INFO] [stdout] test turn_flow::discard_for_cleanup::advance_turn_fails_from_end_step_while_cleanup_discard_is_still_required ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_can_target_another_player ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_emits_one_event_per_drawn_card ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_ends_the_game_when_the_target_library_runs_out_mid_effect ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_fails_when_not_player_turn ... ok
[INFO] [stdout] test turn_flow::discard_for_cleanup::discard_for_cleanup_moves_card_from_hand_to_graveyard_during_end_step_cleanup ... ok
[INFO] [stdout] test turn_flow::discard_for_cleanup::discard_for_cleanup_fails_outside_end_step ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_clears_marked_damage_when_turn_ends ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_allows_playing_land_after_turn_change ... ok
[INFO] [stdout] test turn_flow::discard_for_cleanup::discard_for_cleanup_fails_when_not_active_players_turn ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_allows_playing_land_after_draw ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_spell_rejects_opponents_hexproof_creature_when_cast ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_fails_when_zero_cards_are_requested ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_fails_while_priority_window_is_open ... ok
[INFO] [stdout] test turn_flow::turn_number::advance_turn_emits_turn_progressed_event ... ok
[INFO] [stdout] test turn_flow::draw_card::gameplay_actions_fail_after_the_game_has_ended ... ok
[INFO] [stdout] test stack_priority::targeted_spells::targeted_opponents_creature_spell_can_target_an_opponents_creature_when_cast ... ok
[INFO] [stdout] test turn_flow::end_step_trigger_foundation::end_step_trigger_resolves_before_cleanup_only_follow_up ... ok
[INFO] [stdout] test turn_flow::turn_number::game_starts_with_turn_number_1 ... ok
[INFO] [stdout] test turn_flow::turn_number::advance_turn_increments_turn_number ... ok
[INFO] [stdout] test turn_flow::discard_for_cleanup::advance_turn_succeeds_after_discarding_down_to_maximum_hand_size ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_ends_the_game_when_the_library_runs_out_mid_effect ... ok
[INFO] [stdout] test turn_flow::upkeep_trigger_foundation::upkeep_trigger_resolves_through_stack_and_does_not_duplicate_within_same_upkeep ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_moves_cards_from_library_to_hand ... ok
[INFO] [stdout] test turn_flow::end_step_trigger_foundation::end_step_trigger_can_return_supported_spell_from_owners_graveyard_to_hand ... ok
[INFO] [stdout] test turn_flow::upkeep_trigger_foundation::entering_upkeep_enqueues_triggers_from_all_players_battlefields ... ok
[INFO] [stdout] test turn_flow::upkeep_trigger_foundation::entering_upkeep_orders_same_controller_triggers_by_source_card_id ... ok
[INFO] [stdout] test turn_flow::upkeep_trigger_foundation::entering_upkeep_enqueues_supported_upkeep_triggers_before_normal_play ... ok
[INFO] [stdout] test turn_flow::draw_card::draw_cards_effect_works_in_main_phase ... ok
[INFO] [stdout] test turn_flow::end_step_trigger_foundation::entering_end_step_enqueues_supported_end_step_triggers_before_cleanup ... ok
[INFO] [stdout] test turn_flow::advance_turn::advance_turn_resets_lands_played ... ok
[INFO] [stdout] test turn_flow::end_step_trigger_foundation::entering_end_step_enqueues_triggers_from_all_players_battlefields ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 426 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests demonictutor
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3f85890e9983c5b12c3269a4e8a114a2c341a6ce93a66d7f1802c809991e3757", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f85890e9983c5b12c3269a4e8a114a2c341a6ce93a66d7f1802c809991e3757", kill_on_drop: false }`
[INFO] [stdout] 3f85890e9983c5b12c3269a4e8a114a2c341a6ce93a66d7f1802c809991e3757
